我有一个产品数据库,我必须验证产品 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/