考虑一个 pandas 数据框,其中每个索引都表示为日期时间对象,格式如下2009-01-30 23:01:45。
为了计算每天一列的总值,我使用了以下解决方法:
df['col1'].resample('D').sum().cumsum()
或者
df.groupby(df.index.date)['col1'].sum().cumsum()
两者都可以返回我想要的输出。
但是我想知道是否有另一种解决方案而不使用两个连续的聚合函数.sum().cumsum()?
考虑一个 pandas 数据框,其中每个索引都表示为日期时间对象,格式如下2009-01-30 23:01:45。
为了计算每天一列的总值,我使用了以下解决方法:
df['col1'].resample('D').sum().cumsum()
或者
df.groupby(df.index.date)['col1'].sum().cumsum()
两者都可以返回我想要的输出。
但是我想知道是否有另一种解决方案而不使用两个连续的聚合函数.sum().cumsum()?
sum() 和 cumsum() 都会执行不同的操作。
使用 groupby 的 sum() 将为每个日期添加 Val 列中的所有值。而 cumsum() - 累积总和会将第一个日期(行)总和结果与第二个日期(行)总和结果相加,并填充到第二行中,并将该值与第三个日期(行)总和结果相加,然后继续。
因此,它基于您是否只需要每个日期的值总和还是还需要累积总和的要求。谢谢