【问题标题】:Remove index column while saving csv in pandas在熊猫中保存 csv 时删除索引列
【发布时间】:2015-01-03 09:38:24
【问题描述】:

我正在尝试使用 pandas 创建一个 csv,但是当我将数据导出到 csv 时,它给了我一个额外的列

d = {'one' : pd.Series([1., 2., 3.]),'two' : pd.Series([1., 2., 3., 4.])}
df0_fa = pd.DataFrame(d)
df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w')

因此,我的结果是:

 ,one,two
0,1.0,1.0
1,2.0,2.0
2,3.0,3.0
3,4.0,4.0

但是,预期的结果是:

one,two
1.0,1.0
2.0,2.0
3.0,3.0
4.0,4.0

【问题讨论】:

    标签: python csv pandas


    【解决方案1】:

    您看到的是索引列。只需设置index=False:

    df_csv = df0_fa.to_csv('revenue/data/test.csv',mode = 'w', index=False)
    

    【讨论】:

    • 我不知道我是怎么在文档中错过了这个,但是很好!这让我永远感到沮丧,试图弄清楚我在哪里将索引添加为列。
    • 我的头撞得比我应该做的还要多。
    • 如果有人也试图删除列名,您可以传入header=False
    【解决方案2】:

    要在不建立索引的情况下读取 csv 文件,您可以取消设置 index_col 以防止 pandas 将您的第一列用作索引。在将 csv 保存回磁盘时,不要忘记在to_csvset index = false。这不会生成额外的索引列。否则,如果您需要从数据框中删除/删除特定列,请使用 drop ,它对我有用,如下所示:

    import pandas as pd
    file_path = 'example_file.csv'
    data_frame = pd.read_csv(file_path, index_col = False)
    column_name = 'column'
    data_frame = data_frame.drop(column_name, axis = 1) 
    data_frame.to_csv(file_path, index = False)
    

    在这种情况下,即使你的 csv 有一个有效的索引列,你也可以在 read_csv 中跳过 index_col = False

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2015-06-28
      相关资源
      最近更新 更多