Python中文
首页
教程
问答
标签
搜索
登录
注册
Python pandas与OR logi合并
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在搜索,但没有找到这个问题的答案,你能用OR逻辑执行熊猫数据帧的合并吗?基本上,相当于使用“where t1.a=t2.a或t1.a=t2.B”的SQL合并。在</p> <p>我有一种情况,我把信息从一个数据库拉到一个数据帧(df1),我需要将它与另一个数据库中的信息合并,我把它拉到另一个数据帧(df2)中,并基于单个列(col1)进行合并。如果它们在匹配时总是使用相同的值,这将非常简单。我遇到的情况是,有时它们匹配,有时它们使用同义词。第三个数据库有一个表,该表提供了这个数据实体(col1和col1_alias)的同义词之间的查找,可以将其拉入第三个数据帧(df3)。我要做的是合并df1中需要的列和df2中需要的列。在</p> <p>如上所述,在df1.col1和df2.col1匹配的情况下,这将起作用。。。在</p> <pre><code>df = df1.merge(df2, on='col1', how='left') </code></pre> <p>但是,它们并不总是具有相同的值,有时还有同义词。我考虑过根据df3.col1在df1.col1中或df3.col1_alias在df1.col1中的时间来创建df3。然后,从df3.col1和df3.col1\u alias(list1)创建一个值列表,并根据list1中的df2.col1选择df2。这将为我提供所需的df2中的行,但这仍然不能使我将df1和df2合并到适当的行中。我想如果有一个OR merge选项,我可以单步执行并使其正常工作,但以下所有操作都抛出了一个语法错误:</p> ^{pr2}$ <p>以及</p> <pre><code>df = df1.merge(df3, (left_on='col1', right_on='col1')|(left_on='col1', right_on='col1_alias'), how='left') </code></pre> <p>以及</p> <pre><code>df = df1.merge(df3, left_on='col1', right_on='col1'|right_on='col1_alias', how='left') </code></pre> <p>还有其他一些变化。有没有关于如何执行OR合并的指导,或者对使用df3中两列的同义词合并df1和df2的完全不同的方法的建议?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<pre><code>#will this work? df = pd.concat([df1.merge(df3, left_on='col1', right_on='col1', how='left'), df1.merge(df3, left_on='col1', right_on='col1_alias', how='left')] </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
8 回答
Jupyter运行不同版本的卸载库?
5 回答
Jupyter运行指定的键盘快捷键
5 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
2 回答
Jupyter重新加载自定义样式
3 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
2 回答
jupyter错误:无法在随机林中将决策树视为png
3 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
7 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
6 回答
Jupyter隐藏数据帧索引,但保留原始样式
5 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
10 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
7 回答
Jupy上Python的读/写访问问题
2 回答
jupy上没有模块cv
6 回答
Jupy上的排序错误
9 回答
Jupy中bqplot图形的紧凑布局
5 回答
Jupy中matplotlib plot的连续更新
5 回答
Jupy中Numpy函数的文档
3 回答
Jupy中Pandas的自动完成问题
4 回答
jupy中Qt后端的Matplotlib动画
5 回答