gpt4 book ai didi

python - Pandas 中的 GroupBy 除以日期范围

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:10 25 4
gpt4 key购买 nike

我需要在 pandas 中执行一个复杂的 groupBy 并除以日期范围。

                                PROFIT   TOTAL  MATCH_HOME  PROFIT_2
LEAGUE MATCH_DATE MATCH_HOME
1 2007-06-05 (1.2, 1.6] -20.00 1.00 1.55 21.00
2 2007-08-10 (2.4, 2.8] 19.50 0.50 2.50 -19.00
5 2012-04-05 (2, 2.4] 18.20 0.20 2.40 -18.00
2014-09-05 (2, 2.4] -14.00 1.40 2.20 15.40

我通过下一个代码得到了这个数据框:

bins = np.linspace(0, 10, 25, endpoint=False)
g1 = dfml.groupby([dfml.LEAGUE, dfml.MATCH_DATE,
pd.cut(dfml.MATCH_HOME, bins)]).agg({'MATCH_HOME' : 'min',
'PROFIT': sum,
'PROFIT_2': sum,
'TOTAL': sum
})
g1[g1['TOTAL'] > 0]

如何按 Month 而不是 Day 分组?

最佳答案

也许你可以使用dt.month :

bins = np.linspace(0, 10, 25, endpoint=False)
g1 = dfml.groupby([dfml.LEAGUE, dfml.MATCH_DATE.dt.month,
pd.cut(dfml.MATCH_HOME, bins)]).agg({'MATCH_HOME' : 'min',
'PROFIT': sum,
'PROFIT_2': sum,
'TOTAL': sum
})
g1[g1['TOTAL'] > 0]

或者,如果您同时需要年和月,请将 datetime 转换为 period:

df['MATCH_DATE'] = df['MATCH_DATE'].dt.to_period('M')

关于python - Pandas 中的 GroupBy 除以日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com