我有两个熊猫数据框。 df1具有列['a','b','c'],而df2具有列['a','c','d']。现在,我用列['a'创建一个新的数据框df3, b','c','d']。
我想用df1和df2的所有输入填充df3。例如,如果我在df1中有x行,在df2中有y行,那么我在df3中将有x + y行。
哪个Pandas函数基于部分列填充新的数据框?
答案 0 :(得分:1)
示例数据:
df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[2, 3, 4], 'd':['h', 'j', 'k']})
df2 = pd.DataFrame({'a':[5, 6, 7], 'b':[1, 1, 1], 'c':[2, 2, 2]})
代码:
df1.append(df2)
出局:
a b c d
0 1 2 NaN h
1 2 3 NaN j
2 3 4 NaN k
0 5 1 2.0 NaN
1 6 1 2.0 NaN
2 7 1 2.0 NaN
答案 1 :(得分:1)
使用数据框https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html的附加功能
anotherFrame = df1.append(df2, ignore_index=True)
另一种方法是合并-https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html
df1.merge(df2, how='outer')
答案 2 :(得分:1)
怎么样:
df1 = pd.DataFrame({"a": [1,2], "b": [3,4], "c": [5,6]})
df2 = pd.DataFrame({"a": [7,8], "c": [9,10], "d": [11,12]})
df3 = df1.append(df2, sort=False)
df3
a b c d
0 1 3.0 5 NaN
1 2 4.0 6 NaN
0 7 NaN 9 11.0
1 8 NaN 10 12.0