python - 根据分组检查多个条件
问题描述
来自大表的示例示例表:
df = pd.DataFrame({'SiteLocation': ['1234 something street','1234 something street','1234 something street','1234 something street', '1234 something street','1234 something street', '567 other street', '567 other street', '567 other street', ],
'Boolean': ['true','false','false','false','false','false', 'false','true','false'],
'Active?': ['Cake-active','Pie-active','Cake-inactive','KeyLime-active', 'Vanilla Sundae-active', 'Pie-inactive', 'Cake-active','Cake-inactive','KeyLime-inactive']})
地点坐标 | 布尔值 | 积极的? |
---|---|---|
东西街1234号 | 真的 | 蛋糕活性 |
东西街1234号 | 错误的 | 馅饼活跃 |
东西街1234号 | 错误的 | 蛋糕不活跃 |
东西街1234号 | 错误的 | KeyLime-active |
东西街1234号 | 错误的 | 香草圣代-活性 |
东西街1234号 | 错误的 | 饼图不活跃 |
567 其他街道 | 错误的 | 蛋糕活性 |
567 其他街道 | 真的 | 蛋糕不活跃 |
567 其他街道 | 错误的 | KeyLime 不活动 |
我的目标:我想创建一个“找到?” true
如果 SiteLocation 有任何in columnBoolean
并且不应该在 column中,则返回 'Found' 的Pie-Active
列Active?
。
在此示例中,SiteLocation '567 other street' 将被标记为 'found'。我的意思见下文:
地点坐标 | 布尔值 | 积极的? | 成立? |
---|---|---|---|
东西街1234号 | 真的 | 蛋糕活性 | 未找到 |
东西街1234号 | 错误的 | 馅饼活跃 | 未找到 |
东西街1234号 | 错误的 | 蛋糕不活跃 | 未找到 |
东西街1234号 | 错误的 | KeyLime-active | 未找到 |
东西街1234号 | 错误的 | 香草圣代-活性 | 未找到 |
东西街1234号 | 错误的 | 饼图不活跃 | 未找到 |
567 其他街道 | 错误的 | 蛋糕活性 | 成立 |
567 其他街道 | 真的 | 蛋糕不活跃 | 成立 |
567 其他街道 | 错误的 | KeyLime 不活动 | 成立 |
虽然在 column中1234 something street
有,但是在 column中却不满足条件。true
Boolean
Active?
Pie-active
解决方案
- 找到目标站点位置
- 然后用“找到”填充目标站点位置,其他用“未找到”
cond1 = df['Boolean'] == 'true'
cond2 = df['Active?'] == 'Pie-active'
site_list = set(df.loc[cond1, 'SiteLocation']) - set(df.loc[cond2, 'SiteLocation'])
df['Found?'] = np.where(df['SiteLocation'].isin(site_list),
'Found', 'Not Found')
推荐阅读
- tableau-api - 如何在 tableau 中使用 mann whitney u 检验确定统计显着性
- javascript - 太多的重新渲染。React 限制了渲染的数量?Socket.io 聊天应用
- python - 如何从包含嵌套字典的字典创建 Pandas 数据框?
- html - 没有任何风格的形式
- awk - 如何使用 awk 格式化程序的输出,转换第一列但保持其余部分不变?
- deployment - 部署到 Azure 应用服务时出现 Azure Key Vault 依赖项错误
- java - 使用构造函数计算两点之间的欧几里得距离
- scala - Scala - 未来的“内存不足”
- java - Hibernate loader 在 System.identityHashCode 中花费大量时间
- python - 为什么TypedDict调用update方法时mypy不通过