不同频率的石斑鱼

问题描述 投票:0回答:1

我正在尝试使用 pandas 类 Grouper 按日期对数据进行分组。 我的数据是每周的,我可以轻松地按月对其进行分组,如下所示:

data.groupby(pd.Grouper(freq = 'M').sum()

我还想按双月或学期进行分组,但是,这两个不是记录频率的一部分(请参阅此处)。

有办法做到这一点吗?

python pandas datetime pandas-groupby
1个回答
2
投票

玩具示例:

假设我们有如下每周数据,我们希望将其转换为每月频率并对 px 列的值求和:

df = pd.DataFrame({
    'date':pd.date_range('2020.05.01', periods=12, freq='W'),
    'px':np.arange(12)
})
df

输入df

    date        px
0   2020-05-03  0
1   2020-05-10  1
2   2020-05-17  2
3   2020-05-24  3
4   2020-05-31  4
5   2020-06-07  5
6   2020-06-14  6
7   2020-06-21  7
8   2020-06-28  8
9   2020-07-05  9
10  2020-07-12  10
11  2020-07-19  11

我们可以通过两种方式将其转换为月份频率。

使用重新采样

df.resample('M', on='date').sum()

使用石斑鱼

df.groupby(pd.Grouper(key='date', freq='M')).sum()

输出

            px
date    
2020-05-31  10
2020-06-30  26
2020-07-31  30

pd.Grouperresample之间的区别

© www.soinside.com 2019 - 2024. All rights reserved.