1

我正在使用一个看起来像这样的 df:

                        trans_id    amount  month   day     hour
2018-08-18 12:59:59+00:00   1         46    8       18       12
2018-08-26 01:56:55+00:00   2         20    8       26       1

我打算每小时获得平均“金额”。我使用以下代码来做到这一点:

df2 = df.groupby(['month', 'day', 'day_name', 'hour'], as_index = False)['amount'].sum()

这给了我每个月的总金额 day_name 小时组合,这没关系。但是当我计算每天的总小时数时,它们都不是预期的 24 小时。我想是因为某些交易在那个特定的(月日 day_name 小时)不存在。

我的问题是,如果他们有记录,我如何让所有 24 小时都变得无关紧要。

谢谢

4

1 回答 1

1

Series.unstack与 一起使用DataFrame.stack

df2 = (df.groupby(['month', 'day', 'day_name', 'hour'])['amount']
         .sum()
         .unstack(fill_value=0)
         .stack()
         .reset_index())
于 2021-01-11T10:10:41.520 回答