从 csv 文件读取时,熊猫会添加列

Posted

技术标签:

【中文标题】从 csv 文件读取时,熊猫会添加列【英文标题】:pandas add columns when read from a csv file 【发布时间】:2017-05-09 19:08:08 【问题描述】:

我想使用 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

【问题讨论】:

How to add header row to a pandas DataFrame的可能重复 【参考方案1】:

添加额外索引列的原因是因为 to_csv() 默认写入一个索引,因此您可以在保存 CSV 时禁用索引:

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

或者你可以在阅读的时候指定一个索引列:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

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

names:类数组,默认无

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

【讨论】:

以上是关于从 csv 文件读取时,熊猫会添加列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用代理上的熊猫从 url 读取_csv 文件?

我应该如何使用熊猫读取没有“未命名”行的 csv 文件? [复制]

如何在 pyspark 数据框中读取 csv 文件时读取选定的列?

将列添加到熊猫数据框以进行多索引

使用熊猫循环合并大量csv文件[重复]

熊猫在没有标题的表格中读取