[英]Pandas - Compare positive/negative values
我有一個數據框“ 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不同,那么這是錯誤的。 有快速的方法嗎? 最終,我只想知道所有行中有正確回答的百分比。
(ps實際數據幀中有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提出的更快,更“泛泛”的版本:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.