如果熊猫满足条件,则更新列

我有一个数据框要处理,我正在执行多项检查。

我正在检查“A”、“B”和“C”列下的重复值是否显示相同的数字,但在 D 列下具有相反的符号。

一种 C D
1111 AAA 123 0.01 评论被替换
2222 BBB 456 5 评论被替换
3333 CCC 789 10 什么都不做
1111 AAA 123 -0.01 评论被替换
2222 BBB 456 -5 评论被替换
3333 CCC 789 -9 什么都不做

回答

我们可以group在列数据框ABC在专栏系列绝对值沿DtransformD使用sum因为如果对有符号相反则有和必须为零),以检查其幅度相同,但符号相反对的存在

df['E'] = df.groupby(['A', 'B', 'C', df['D'].abs()])['D'].transform('sum').eq(0) 

      A    B    C      D      E
0  1111  AAA  123   0.01   True
1  2222  BBB  456   5.00   True
2  3333  CCC  789  10.00  False
3  1111  AAA  123  -0.01   True
4  2222  BBB  456  -5.00   True
5  3333  CCC  789  -9.00  False


以上是如果熊猫满足条件,则更新列的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>