Python 使用熊猫合并错误

Python 使用熊猫合并错误,python,pandas,Python,Pandas,我试图得到这个结果: df1 = pd.DataFrame(columns=["x","y","z"]) df2 = pd.DataFrame({"x":[1],"y":[2]}, index=["foo"]) 我试过了 z x y foo NaN 1 2 这就产生了错误 df1.merge(df2,how="outer", on

我试图得到这个结果:

df1 = pd.DataFrame(columns=["x","y","z"])
df2 = pd.DataFrame({"x":[1],"y":[2]}, index=["foo"])
我试过了

       z  x  y
foo  NaN  1  2
这就产生了错误

df1.merge(df2,how="outer", on=["x","y"], right_index=True)
然而,两者都不是

MergeError: Can only pass argument "on" OR "left_index" and "right_index", not a combination of both.
也不是

给出所需的结果…

使用以下命令:

df1.merge(df2,how="outer", left_index=True, right_index=True)
产生

    df2.merge(df1, on=['x', 'y'], how='outer')
索引不是您需要的索引,因此您可以这样做:

   x  y    z
0  1  2  NaN
生产

    df2.reset_index().merge(df1, on=['x', 'y'], how='outer').set_index('index')
如果要删除“索引”一词,请将上述数据帧命名为df3,然后:

       x  y    z
index           
foo    1  2  NaN
导致

    del df3.index.name
为什么不干脆:

     x  y    z
foo  1  2  NaN

您的第一个空数据帧是毫无意义的。我想您正在寻找
reindex
df2.reindex(['z','x','y'],axis=1)
谢谢@ALollz。我需要
df1
,因为它并不总是空的。这取决于用户的输入。
     x  y    z
foo  1  2  NaN
df2['z'] = df1['z']