python - 验证一列中的条件规则和另一列中的重复

标签 python pandas

我有一个产品数据库,我必须验证产品 ID 是否在某一列中重复,并验证它在另一列中是“True”还是“False”。然后,如果至少有一个重复行为“True”,则将全部设置为“True”。

我在这个链接中找到了一种方法:Create rule for sets of duplicates in a Pandas Dataframe使用第二个答案,但在我的数据库中执行此过程花费了太多时间,大约 8 分钟。

有人知道如何以更快的方式做到这一点吗?

示例:

ID Active 
01 False
01 False
01 True
02 False
02 False
03 True
03 False
03 False

最后应该是这样的:

ID Active 
01 True
01 True
01 True
02 False
02 False
03 True
03 True
03 True

最佳答案

您可以在 groupby.transform 中方便地使用 max :

df['Active'] = df.groupby('ID')['Active'].transform('max')

或者任何更快一点的:

df['Active'] = df.groupby('ID')['Active'].transform('any')

输出:

   ID  Active
0   1    True
1   1    True
2   1    True
3   2   False
4   2   False
5   3    True
6   3    True
7   3    True

关于python - 验证一列中的条件规则和另一列中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71742794/

相关文章:

python - 如何导入模块 PyImgur Python

python - 如何正确地将 PyTZ 添加到 Google App Engine 应用程序?

python - Python中的模块和库有什么区别?

python - 如何在Python中将边缘检测结果和原始图片拼凑在一起

python - Pandas 面板数据 - 考虑年份差距将值移动两次

python - 使用 spotipy 提取艺术家流派和歌曲发布日期

python - 在数据框中创建峰值列

python - 在 sklearn 中的一维数组上使用 x.reshape

python - 如何使用 pandas/sklearn 删除停止短语/停止 ngram(多词字符串)?

python - 根据列中值的前缀删除 Pandas 行