获取此熊猫系列中正数的百分比

时间:2018-07-25 07:41:03

标签: pandas series

我有一个看起来像这样的熊猫系列

0     -10.93
1      -9.18
2      -6.87
3      7.90
4      9.18
5      6.87
6      9.12
7      9.12
8      8.75
9      7.75

我想获得这个系列中正数的百分比。在这种情况下,答案应该是70%。

我正在使用python 3.6

2 个答案:

答案 0 :(得分:1)

使用

In [381]: s.ge(0).sum() / len(s.index) * 100.
Out[381]: 70.0

In [383]: 100. * (s >= 0).sum() / len(s.index)
Out[383]: 70.0

答案 1 :(得分:1)

使用mean的布尔掩码:

a = s.gt(0).mean() * 100

a = (np.sign(s) == 1).mean() * 100

print (a)
70.0

如果还希望所有负,正和零值都可以使用numpy.signvalue_counts

print (s)
0   -10.93
1    -9.18
2    -6.87
3     7.90
4     9.18
5     6.87
6     9.12
7     9.12
8     8.75
9     0.00 <- changed last value to 0
Name: a, dtype: float64

b = np.sign(s).value_counts(normalize=True).rename({0:'zero', 1:'pos', -1:'neg'})
print (b)
pos     0.6
neg     0.3
zero    0.1
Name: a, dtype: float64