假设我有一个包含三列的主数据框
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}}
提前感谢您的帮助!
答案 0 :(得分: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之前,您不必创建空数据帧。
答案 1 :(得分: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