2016-11-16 98 views
1
的名字添加具有不同長度的不同dataframes到數據幀

假設我有三列Python的大熊貓:使用列

 A B C 
    0 7 7 7 

而且我有其他三個dataframes主數據幀,每個人只有一列,但與不同的長度。

df_A = pd.DataFrame([2,3,4,6,7,11],columns = ['A']) 
df_B = pd.DataFrame([2,3,4],columns = ['B']) 
df_C = pd.DataFrame([2,3,4,5,6,7,8,9,10],columns = ['C']) 

如何根據列的名稱將這些數據框中的每一個添加到主數據框中。所以輸出會是這樣

A B C 
0 7 7 7 
1 2 2 2 
2 3 3 3 
3 4 4 4 
4 6 NaN 5 
5 7 NaN 6 
6 11 NaN 7 
7 NaN NaN 8 
8 NaN NaN 9 
9 NaN NaN 10 

預先感謝您的幫助!

回答

1

試試這個:

In [187]: pd.concat([df, df_A.join(df_B, how='outer').join(df_C, how='outer')]) 
Out[187]: 
     A B C 
0 7.0 7.0 7 
0 2.0 2.0 2 
1 3.0 3.0 3 
2 4.0 4.0 4 
3 6.0 NaN 5 
4 7.0 NaN 6 
5 11.0 NaN 7 
6 NaN NaN 8 
7 NaN NaN 9 
8 NaN NaN 10 
+0

它的工作表示感謝 – goodX

1
import pandas as pd 

df3 = pd.DataFrame({'A': [7],'B': [7],'C': [7]}) 
df_A = pd.DataFrame([2,3,4,6,7,11],columns = ['A']) 
df_B = pd.DataFrame([2,3,4],columns = ['B']) 
df_C = pd.DataFrame([2,3,4,5,6,7,8,9,10],columns = ['C']) 

df_main = pd.concat([df_A, df_B, df_C], axis=1) 
newdf = df3.append(df_main).reset_index(drop=True) 
newdf 

您不必在使用concat之前創建空數據框。

pandas documents to read

+0

對不起,是我的錯,我沒有解釋我的問題提得好。我已更新原始問題 – goodX

+0

它也完成了這項工作。非常感謝您的努力 – goodX