Python pandas:使用列名将不同长度的不同数据帧添加到数据帧
Python pandas: Adding different dataframes with different length to a dataframe using name of columns
假设我有一个包含三列的主数据框
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
假设我有一个包含三列的主数据框
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