将pandas数据帧保存到csv文件时的附加列

时间:2016-08-27 19:37:47

标签: python python-2.7 csv pandas dataframe

这里是处理和保存csv文件的代码,以及原始输入csv文件和输出csv文件,在Python 2.7上使用pandas并想知道为什么在保存文件时会有一个额外的列?感谢。

c_a,c_b,c_c,c_d
hello,python,pandas,0.0
hi,java,pandas,1.0
ho,c++,numpy,0.0

sample = pd.read_csv('123.csv', header=None, skiprows=1,
    dtype={0:str, 1:str, 2:str, 3:float})
sample.columns = pd.Index(data=['c_a', 'c_b', 'c_c', 'c_d'])
sample['c_d'] = sample['c_d'].astype('int64')
sample.to_csv('saved.csv')

以下是保存的文件,开头有一个附加列,其值为0, 1, 2

cat saved.csv
,c_a,c_b,c_c,c_d
0,hello,python,pandas,0
1,hi,java,pandas,1
2,ho,c++,numpy,0

1 个答案:

答案 0 :(得分:6)

附加列对应于数据帧的索引,并在您读取CSV文件后进行聚合。您可以使用此索引以有效的方式对DF进行切片,选择或排序。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.html

http://pandas.pydata.org/pandas-docs/stable/indexing.html

如果要避免使用此索引,可以在使用函数index保存数据框时将False标记设置为pd.to_csv。此外,您要删除标题并在以后汇总,但您可以使用CSV标题来避免此步骤。

sample = pd.read_csv('123.csv', dtype={0:str, 1:str, 2:str, 3:float})
sample.to_csv('output.csv', index= False)

希望有所帮助:)