Python:使用列名称向数据帧添加不同长度的不同数据帧
假设我有一个包含三列的主数据框Python:使用列名称向数据帧添加不同长度的不同数据帧,python,pandas,dataframe,add,Python,Pandas,Dataframe,Add,假设我有一个包含三列的主数据框 A B C 0 7 7 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']) 如何根据列的名称将这些数据帧中的每一个添加到
A B C
0 7 7 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'])
如何根据列的名称将这些数据帧中的每一个添加到主数据帧中。所以输出是这样的
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
提前感谢您的帮助
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之前,不必创建空数据帧
试试这个:
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
对不起,这是我的错,我没有很好地解释我的问题。我已经更新了原来的问题