在熊猫中保存 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_csv
中set 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 时删除索引列的主要内容,如果未能解决你的问题,请参考以下文章