【问题标题】:pandas add columns when read from a csv file从 csv 文件读取时,熊猫会添加列
【发布时间】: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

【问题讨论】:

标签: python csv pandas


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您需要两个:header=None 和 names=['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(这是默认设置),否则不允许在此列表中重复。

          【讨论】:

            猜你喜欢
            • 2018-07-18
            • 2013-03-23
            • 1970-01-01
            • 2019-12-03
            • 2020-10-06
            • 1970-01-01
            • 2017-10-27
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多