2015-04-02 30 views
1

我使用Pandas連接兩個數據文件。該CONCAT運作良好,但是當我寫的數據恢復到CSV上的數據失去了一些一致性:大熊貓後錯誤列中的值DataFrame.to_csv()

# Define DataFrame 1 
headerList1 = ['A', 'B', 'C', 'D'] 
b1 = np.array([[0, 'B_foo', 2, 'D_one'], 
       [3, 'B_bar', 5, 'D_two'], 
       [6, 'B_cat', 8, 'D_one']]) 
df1 = pd.DataFrame(b1, columns=headerList1) 

# Define DataFrame 2 
headerList2 = ['C', 'E', 'F', 'G'] 
b2 = np.array([[12, 'E_foo', 2, 'G_one'], 
       [15, 'E_bar', 5, 'G_two'], 
       [19, 'E_cat', 8, 'G_one']]) 
df2 = pd.DataFrame(b2, columns=headerList2) 

# Concat DataFrames 
df3 = pd.concat([df1, df2], axis=0, ignore_index=True) 

# Write to csv 
scratchFile = os.path.join(dir, 'scratch.csv') 
df3.to_csv(scratchFile, index_label=False, ignore_index=True) 

我要找:

A  B C  D  E F  G 
    0 B_foo 2 D_one NaN NaN NaN 
    3 B_bar 5 D_two NaN NaN NaN 
    6 B_cat 8 D_one NaN NaN NaN 
NaN NaN 12 NaN E_foo 2 G_one 
NaN NaN 15 NaN E_bar 5 G_two 
NaN NaN 19 NaN E_cat 8 G_one 

,但得到:

A  B  C  D  E  F  G 
0  0  B_foo 2  D_one Nan  Nan 
1  3  B_bar 5  D_two Nan  Nan 
2  6  B_cat 8  D_one Nan  Nan 
3 Nan Nan  12 Nan  E_foo 2  G_one 
4 Nan Nan  15 Nan  E_bar 5  G_two 
5 Nan Nan  19 Nan  E_cat 8  G_one 

我可以通過從to_csv()命令中刪除index_label = False幾乎達到期望的結果,但這會導致添加不需要的索引列。

有沒有一種方法來獲得所需的輸出沒有索引列?另外,爲了個人興趣,爲什麼刪除index_label = False會破壞列組織?

謝謝!

回答

2
df3.to_csv('df3.csv', index = False) 

這對我有用。 index = False意味着數據幀索引不包含在csv中。