首页 > 解决方案 > 将数据帧与空数据帧合并

问题描述

empty = pd.DataFrame(columns=["x"])
df1 = pd.DataFrame({"x":[1],"a":[3]})
df2 = pd.DataFrame({"x":[1],"b":[6]})

我想将df1with合并empty

    x  a 
0   1  3

我试过

empty.merge(df1, on=["x"])

但这会返回一个空数据框。与 成功合并后df1,我希望能够empty再次与合并,df2从而导致

    x  a  b 
0   1  3  6

标签: pythonpandas

解决方案


这在文档中很清楚:merge默认为内部连接。由于左表中没有键,因此结果中没有键。只需指定一个外连接即可解决此问题:

empty.merge(df1, how="inner", on=["x"])

完整演示:

>>> accum = empty.merge(df1, "outer")
>>> accum
   x  a
0  1  3
>>> accum = accum.merge(df2, "outer")
>>> accum
   x  a  b
0  1  3  6
>>> 

推荐阅读