python - 使用熊猫的合并错误
问题描述
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", on=["x","y"])
也不
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')
生产
x y z
index
foo 1 2 NaN
如果要删除“索引”一词,请命名上述数据框df3
并:
del df3.index.name
导致
x y z
foo 1 2 NaN
推荐阅读
- jsxgraph - 在一组对象中,Segment 不移动
- c++ - 为什么这个并发代码比另一个(都是 C++)慢?
- r - 合并标准 Eurobarometer 的多个数据集
- c# - 如何将数组中的元素与在c#中按顺序输入到文本框中的元素进行比较?
- angular - 添加评论时,基本组件的角度依赖注入失败
- python - 如何通过存储在不同 .json 文件中的键来分隔 .json 文件?
- javascript - 函数读取给定节点的所有属性的问题
- html - Angular 11 在 HTML 中填充输入
- mysql - 可在 docker-compose.yml 中为 mysql 和 wordpress 设置的端口
- powershell - 如何显示对此脚本所做的更改?