2017-02-23 89 views
0

基於直接附加兩個dataframe並具有不同列數的事實,將出現錯誤pandas.io.common.CParserError: Error tokenizing data. C error: Expected 4 fields in line 242, saw 5。我如何處理pandas以避免錯誤?如何使用不同數量的列追加兩個pandas.DataFrame

我已經找出了一種天真的做法:只是爲了處理原始數據,使列數相等。

它可以更優雅?我認爲在pd.append之後可以用np.nan填寫缺失的列。

回答

2

您應該能夠如圖所示連接數據幀。

您需要重新命名列以滿足您的需要。

df1 = pd.DataFrame({'a':[1,2,3,4],'b':[1,2,3,4],'c':[1,2,3,4]}) 
df2 = pd.DataFrame({'a':[1,2,3,4],'c':[1,2,3,4]}) 

df = pd.concat([df1,df2]) 

print('df1') 
print(df1) 
print('\ndf2') 
print(df2) 
print('\ndf') 
print(df) 

輸出:

df1 
    a b c 
0 1 1 1 
1 2 2 2 
2 3 3 3 
3 4 4 4 

df2 
    a c 
0 1 1 
1 2 2 
2 3 3 
3 4 4 

df 
    a b c 
0 1 1.0 1 
1 2 2.0 2 
2 3 3.0 3 
3 4 4.0 4 
0 1 NaN 1 
1 2 NaN 2 
2 3 NaN 3 
3 4 NaN 4 
+0

謝謝!有用! –

相關問題