【发布时间】:2018-12-24 13:08:10
【问题描述】:
python 新手。我确信有一个非常简单的解决方案,但我很难找到它。
我有一系列正数和负数。我想知道正数的百分比。我已经为整个数据集完成了这项工作,但我希望在每一行上都进行计算。
我正在使用的数据集非常大,但这里是一个示例:
import pandas as pd
data = {'numbers': [100, 300, 150, -150, -75, -100]}
df = pd.DataFrame(data)
df['count'] = df['numbers'].count()
df['pct_positive'] = df.numbers[df.numbers > 0].count() / df['count']
print(df)
这是实际结果:
numbers count pct_positive
0 100 6 0.5
1 300 6 0.5
2 150 6 0.5
3 -150 6 0.5
4 -75 6 0.5
5 -100 6 0.5
这是我想要的结果:
numbers count pct_positive
0 100 1 1.0
1 300 2 1.0
2 150 3 1.0
3 -150 4 0.75
4 -75 5 0.66
5 -100 6 0.5
注意 'count' 和 'pct_positive' 是如何在所需结果的每一行上计算的,它们只是实际结果中的总计。
【问题讨论】:
-
你能解释一下
pct_positive正负数计算背后的逻辑吗?