从csv文件中读取时,pandas会添加列

时间:2016-12-24 10:01:30

标签: python csv pandas

我想使用pandas read_csv从CSV文件中读取。 CSV文件没有列名。当我使用pandas读取CSV文件时,默认情况下第一行设置为列。但是当我使用df.columns = ['ID', 'CODE']时,第一行就消失了。我想添加,而不是替换。

df = pd.read_csv(CSV)
df

    a   55000G707270
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240


df.columns=['ID','CODE']
df

    ID          CODE
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240

5 个答案:

答案 0 :(得分:3)

我认为您需要read_csv中的参数names

df = pd.read_csv(CSV, names=['ID','CODE'])
  

名称:类似数组,默认无

     

要使用的列名列表。如果文件不包含标题行,则应显式传递header = None。除非mangle_dupe_cols = True,否则不允许此列表中的重复项。这是默认值。

答案 1 :(得分:1)

您可以在读取csv文件时将列名称传递为:

df = pd.read_csv(csv_path, names = ["ID", "CODE"])

答案 2 :(得分:1)

在函数调用中使用names参数自行添加列:

df = pd.read_csv(CSV, names=['ID','CODE'])

答案 3 :(得分:1)

您需要header=Nonenames=['ID','CODE'],因为您的CSV文件中没有列名/标签/标题:

df = pd.read_csv(CSV, header=None, names=['ID','CODE'])

答案 4 :(得分:0)

之所以要添加额外的索引列,是因为to_csv()默认情况下会写一个索引,因此您可以在保存CSV时禁用索引:

df.to_csv('file.csv', index=False)

或者您可以在阅读时指定索引列:

df = pd.read_csv('file.csv', index_col=0)