[在Python中导入多个文件txt文件并将每个文件分配给单独的数据帧时,如何防止第一行成为标题?

问题描述 投票:-1回答:1

我有4个txt文件,我已经能够导入它们,将它们制成数据框并存储在列表中。文件中没有标题,我无法在文件本身中添加标题。当我运行代码时,它将第一行变成标题。如何修改此代码,以使第一行不成为标题? all_dfs是一个包含文件名的列表。

filenames = glob.glob("U32_*.txt")
all_dfs = [pd.read_csv(filename) for filename in filenames]
for dataframe, filename in zip(all_dfs, filenames):
    dataframe['filename'] = filename
python-3.x dataframe glob
1个回答
1
投票

From the pandas.read_csv documentation

header:int,int列表,默认为'infer'

要用作列名的行号以及数据的开头。默认行为是推断列名称:如果没有名称传递的行为与header = 0相同,列名称为如果传递了列名,则从文件的第一行推断显式地,该行为与header = None相同。明确地传递header = 0即可替换现有名称。标头可以是整数列表,用于指定多索引上行的位置列[0,1,3]。未指定的中间行将是已略过(例如在本例中为2)。注意这个参数如果skip_blank_lines = True,则忽略注释行和空行,因此header = 0表示数据的第一行,而不是文件。

名称:类似数组,可选

要使用的列名列表。如果文件不包含标题行,则应显式传递header = None。此列表中不允许重复。

由于您的文件没有标题,所以推断列名的默认行为对您不起作用,您需要在对read_csv的调用中指定header=None以覆盖该默认行为。您可能还需要提供names的数组以提供列名。

所以它看起来像:

pd.read_csv(filename, names=['firstColName', 'secondColName'], header=None)
© www.soinside.com 2019 - 2024. All rights reserved.