Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;groupby“;基于特定条件返回出现的百分比_Python_Python 3.x_Pandas_Dataframe_Pandas Groupby - Fatal编程技术网

Python &引用;groupby“;基于特定条件返回出现的百分比

Python &引用;groupby“;基于特定条件返回出现的百分比,python,python-3.x,pandas,dataframe,pandas-groupby,Python,Python 3.x,Pandas,Dataframe,Pandas Groupby,基于类似于的数据帧 Strategy Profit AA 100 AA 50 AA -50 BB -20 BB 180 CC -20 DD 20 我希望按“策略”分组,并使“利润”的时间百分比为正(即大于零-条件) 我目前做这件事相当粗俗(通过策略循环),但我需要一个更直接的方法,因为有太多的记录,有太多不同的“策略” 预期结果: Strategy As

基于类似于的数据帧

Strategy    Profit
AA          100 
AA           50
AA          -50
BB          -20
BB          180
CC          -20
DD           20
我希望按“策略”分组,并使“利润”的时间百分比为正(即大于零-条件)

我目前做这件事相当粗俗(通过策略循环),但我需要一个更直接的方法,因为有太多的记录,有太多不同的“策略”

预期结果:

Strategy   Assertiveiness %
AA           66,66 
BB              50
CC               0
DD             100

谢谢你的帮助

这只是
groupby
+
mean

df["Profit"].gt(0).groupby(df["Strategy"]).mean().mul(100)

Strategy
AA     66.666667
BB     50.000000
CC      0.000000
DD    100.000000
Name: Profit, dtype: float64

为什么
BB
90,不是应该是50吗?@user3483203正确!固定的!谢谢你的关注!秘密(对我来说)实际上是
gt(0)
。谢谢
df["Profit"].gt(0).groupby(df["Strategy"]).mean().mul(100)

Strategy
AA     66.666667
BB     50.000000
CC      0.000000
DD    100.000000
Name: Profit, dtype: float64