如何在python熊猫中实现左外部联接?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python熊猫中实现左外部联接?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1543字,纯文字阅读大概需要3分钟。
内容图文
![如何在python熊猫中实现左外部联接?](/upload/InfoBanner/zyjiaocheng/665/3ff5dd8fd6344d88bca4d8c85564c339.jpg)
这个问题已经在这里有了答案: > Pandas Merging 101 2个
我一直在尝试在python中实现左外部联接.我看到左联接和左外部联接之间存在细微差别.
就像在这个链接中:LEFT JOIN vs. LEFT OUTER JOIN in SQL Server
我可以在下面的示例示例中进行操作:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value1': np.random.randn(4)})
df2 = pd.DataFrame({'key': ['B', 'D', 'D', 'E'],
'value2': np.random.randn(4)})
df3 = df1.merge(df2, on=['key'], how='left')
总共给出了df1中的记录(包括相交的记录)
但是,我该如何处理仅包含df1中的记录却不在df2中的左外部联接?
不是:这仅是示例,在两个数据帧中我可能都有大量的列(不同).
请帮忙.
解决方法:
设置参数indicator=True,这将添加一列_merge,然后仅过滤left_only的行:
In [46]:
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value1': np.random.randn(4)})
?
df2 = pd.DataFrame({'key': ['B', 'D', 'D', 'E'],
'value2': np.random.randn(4)})
?
df3 = df1.merge(df2, on=['key'], how='left', indicator=True)
df3
Out[46]:
key value1 value2 _merge
0 A -0.346861 NaN left_only
1 B 1.120739 0.558272 both
2 C 0.023881 NaN left_only
3 D -0.598771 -0.823035 both
4 D -0.598771 0.369423 both
In [48]:
df3[df3['_merge'] == 'left_only']
Out[48]:
key value1 value2 _merge
0 A -0.346861 NaN left_only
2 C 0.023881 NaN left_only
如果在旧版本上,则将isin与?一起使用以否定掩码:
In [50]:
df3[~df3['key'].isin(df2['key'])]
Out[50]:
key value1 value2
0 A -0.346861 NaN
2 C 0.023881 NaN
内容总结
以上是互联网集市为您收集整理的如何在python熊猫中实现左外部联接?全部内容,希望文章能够帮你解决如何在python熊猫中实现左外部联接?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。