簡體   English   中英

熊貓-比較正/負值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM