在熊猫中保存 csv 时删除索引列

Posted

技术标签:

【中文标题】在熊猫中保存 csv 时删除索引列【英文标题】:Remove index column while saving csv in pandas 【发布时间】: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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于在熊猫中保存 csv 时删除索引列的主要内容,如果未能解决你的问题,请参考以下文章

删除熊猫中多列中包含一段字符串的所有行

如何在熊猫中设置第一列和第一行作为索引?

按索引删除多个 Pandas 列

熊猫 groupby 没有将按列分组转换为索引

从记录中用熊猫索引几个 csv 文件?

从记录中用熊猫索引几个 csv 文件?