python - 来自另一个df的具有多个条件的熊猫数据框布尔索引
问题描述
我正在尝试识别 2 df 之间的行,这些行对于同一行的某些列共享相同的值。
例子:
import pandas as pd
df = pd.DataFrame([{'energy': 'power', 'id': '123'}, {'energy': 'gas', 'id': '456'}])
df2 = pd.DataFrame([{'energy': 'power', 'id': '456'}, {'energy': 'power', 'id': '123'}])
df =
energy id
0 power 123
1 gas 456
df2 =
energy id
0 power 456
1 power 123
因此,我试图从 df 中获取能量和 id 与 df2 中同一行完全匹配的行。如果我这样做,我会得到一个错误的结果:
df2.loc[(df2['energy'].isin(df['energy'])) & (df2['id'].isin(df['id']))]
因为这将匹配 df2 的 2 行,而我希望只匹配 power / 123
我应该如何使用基于另一个 df 行的多个“动态”条件进行布尔索引并匹配另一个 df 中相同行的值?
希望清楚
解决方案
pd.merge(df, df2, on=['id','energy'], how='inner')
推荐阅读
- c# - GraphQL HotChocolate 添加 PaginationAmountType 将我的 int 转换为 PaginationAmmount
- dynamics-crm - 在 Common Data Service 中跨多个 Dynamics 实体进行筛选
- c++ - cin 在我的提示符中忽略空格的问题
- newrelic - 我们可以在 Newrelic 中获得每个应用程序的应用程序正常运行时间吗
- r - 如何避免选择两个选项时(其中之一),以避免获得积极的积分?
- php - 如何隐藏在 ajax post 方法中调用的 php 文件?
- java - 我从包含“%20”和 Java Net URL 的 URL 字符串中收到 Http 400 错误
- scala - 从 spark 数据框中获取元素并将其传递给函数
- javascript - 如何使用 Javascript 将两个音频 .wav 文件合并/合并为一个文件
- python - 为什么 .tif 不是在 AdobeRGB 颜色配置文件中导出,但 .jpg 是