2014-11-06 84 views
35

我试图创建大熊猫CSV,但是当我导出为CSV它给了我一个额外的行熊猫to_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 

但我要的是

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

回答

58

你看到的是索引栏。只需设置index=False

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

我不知道我在文档中错过了这个,但很棒!这让我感到很沮丧,试图找出我将索引作为列添加到哪里。 – Blairg23 2015-12-23 22:58:13

+1

我对我的反应比我想象的要严重得多。 – 2016-01-04 19:15:22

+4

如果有人也试图删除列名,你可以传入'header = False'。 – twiz 2016-08-14 19:04:01

4

要读取csv文件没有索引,你可以取消设置index_col防止大熊猫从使用第一列的索引。在将csv保存到磁盘上时,请不要忘记set index = false in to_csv。这不会生成额外的索引列。另外,如果你需要删除/删除从数据帧的特定列,使用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有一个有效的索引列,你可以跳过index_col = Falseread_csv