【问题标题】:How to use pd.grouper along with groupby in pandas如何在熊猫中使用 pd.grouper 和 groupby
【发布时间】:2020-04-08 01:18:48
【问题描述】:

这是我的数据框

    S2PName-Category    S2BillDate  totSale
0   Food               2019-05-18   2150.0
1   Beverages          2019-05-19   403.0
2   Food               2019-05-19   7254.0
3   Others             2019-05-19   200.0
4   Juice              2019-05-19   125.0
5   Snacks             2019-05-19   70.0
6   Food               2019-06-21   11932.0

我想按 s2PName-category 分组,按频率(每月、每周或每天)和 agg totsale 对 s2Billdate 分组

即,如果我将 Billdate 与 freq 作为每月进行分组,那么我的结果 df 将在 'may' 和 'june' 月份有 'Food' 以及它们的总销售额。

我设法写了一些代码,如下所示,

basic_df = basic_df.groupby(['S2PName-Category','S2BillDate'], sort=False)['S2PGTotal'].agg([('totSale','sum')]).reset_index()

预期的 DF 输出:

  S2PName-Category    S2BillDate  totSale
0   Food               2019-05-31   9404.0
1   Beverages          2019-05-31   403.0
3   Others             2019-05-31   200.0
4   Juice              2019-05-31   125.0
5   Snacks             2019-05-31   70.0
6   Food               2019-06-30   11932.0

在我预期的 o/p df 中,我将 s2Billdate 设置为该月的最后一天,并将该月的 totSale agg 设置为。 我怎样才能做到这一点?

【问题讨论】:

    标签: python pandas


    【解决方案1】:
    basic_df_2 = basic_df.groupby(['S2PName-Category',basic_df['S2BillDate'].dt.to_period('M')], sort=False)['S2PGTotal'].agg([('totSale','sum')]).reset_index()
    

    dt.to_period 将有助于处理与频率相关的参数!

    【讨论】:

      猜你喜欢
      • 2013-11-07
      • 2019-10-10
      • 2020-05-10
      • 2018-01-06
      • 1970-01-01
      • 2021-06-16
      • 2013-10-24
      • 2013-06-06
      • 2019-01-18
      相关资源
      最近更新 更多