我有一个需要分组,过滤,修改和应用自定义功能的df.我的"正常"方法是放慢速度而不是最优雅的方法!
[name] [cnt] [num] [place] [y]
AAAA 12 20182.0 5.0 1.75
BBBB 12 20182.0 7.0 2.00
AAAA 10 20381.0 10.0 9.25
BBBB 10 20381.0 12.0 18.75
EEEE 12 21335.0 1.0 0.00
RRRR 12 21335.0 8.0 3.00
CCCC 12 21335.0 9.0 3.50
Run Code Online (Sandbox Code Playgroud)
我需要在[num]上对df进行分组,即:
[name] [cnt] [num] [place] [y]
AAAA 12 20182.0 5.0 1.75
BBBB 12 20182.0 7.0 2.00
Run Code Online (Sandbox Code Playgroud)
对于这些组中的每一组,我需要完成三项任务:
I.使用相同的[y]值过滤掉一个组内的所有行.组最多可包含6个值.
II.为[place]创建所有可能的子集,长度为2:(5,7)和(7,5)
III.将自定义函数应用于每个子集:
def func(p1, p2):
diff_p = p2-p1
if diff_p > 0:
return 2 / (diff_p * p2)
else:
return p1 …Run Code Online (Sandbox Code Playgroud)