gpt4 book ai didi

python - Pandas - 比较正值/负值

转载 作者:行者123 更新时间:2023-11-28 21:07:19 32 4
gpt4 key购买 nike

我有一个数据框“df”:

    x  y
0 1 -1
1 -2 -3
2 3 4
3 4 5
4 9 6

我正在尝试确定 x 和 y 值的百分比是正数还是负数。所以如果 x 是正数并且 y 是正数,那将是一个正确的答案。如果 x 和 y 都是负数,那将是正确的。如果 x 和 y 不同,则它是错误的。有没有快速的方法来做到这一点?最后,我只想知道所有行中有多少百分比的答案是正确的。

(p.s. 实际数据框中有 1M+ 行)

谢谢

最佳答案

如果我们比较 x*y >= 0 的乘积 - 这应该给我们 “good” 行:

In [19]: df['x'].mul(df['y']).ge(0)
Out[19]:
0 False
1 True
2 True
3 True
4 True
dtype: bool


In [20]: df.loc[df['x'].mul(df['y']).ge(0)]
Out[20]:
x y
1 -2 -3
2 3 4
3 4 5
4 9 6

In [21]: len(df.loc[df['x'].mul(df['y']).ge(0)])/len(df)
Out[21]: 0.8

或由 @NickilMaveli 提议更快更“Pandaic”的版本:

In [23]: df['x'].mul(df['y']).ge(0).mean()
Out[23]: 0.80000000000000004

相同的想法,但这次使用 df.eval()方法:

In [27]: df.eval('x * y >= 0').mean()
Out[27]: 0.80000000000000004

关于python - Pandas - 比较正值/负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596652/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com