我有一个看起来像这样的熊猫系列
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
答案 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.sign
和value_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