熊猫重新采样时间序列数据 - 同一列上有多个 agg 函数?

Posted

技术标签:

【中文标题】熊猫重新采样时间序列数据 - 同一列上有多个 agg 函数?【英文标题】:pandas resampled time series data - multiple agg functions on the same column? 【发布时间】:2021-09-10 04:21:31 【问题描述】:

我有每日时间序列数据,我将这些数据重新采样为每周数据并对“销售额”列求和:

df_weekly = df.resample('W', on='TransxDate').agg('sales': 'sum')

如何也可以得到“计数”的销售额?如果我使用

df_weekly = df.resample('W', on='TransxDate').agg('sales': 'sum', 'sales': 'count')

我只知道计数。如果我颠倒顺序,我只会得到总和。我怀疑问题是使用具有多个功能的相同列名。有没有办法指定输出列名,以便我可以在同一列上执行多个 agg 函数?还是其他解决方案?

【问题讨论】:

使用这样的聚合列列表:df.resample('W',on='TransxDate')['sales'].agg(['sum', 'count']) 【参考方案1】:

试试这个:

df.resample('W', on='TransxDate')['sales'].agg(['sum', 'count'])

或者您可以创建一个多级索引,列聚合,然后将函数作为级别 1。通过使用双括号 [[]]

df.resample('2M', on='Date1')[['Number']].agg(['sum', 'count'])

【讨论】:

两者都可以,谢谢。我能够使用df_weekly = df.resample('W', on='TransxDate')[['sales', 'items']].agg(['sum', 'count']) 将其扩展到多列现在我只需要阅读如何使用生成的多索引(?)数据框。 @jub 您可以使用this post 展平multiIndex。或者您可以选择使用带有 loc 的元组。

以上是关于熊猫重新采样时间序列数据 - 同一列上有多个 agg 函数?的主要内容,如果未能解决你的问题,请参考以下文章

合并两个 Pandas 数据帧,在一个时间列上重新采样,插值

熊猫合并:合并同一列上的两个数据框,但保留不同的列

熊猫将每小时时间序列重新采样为每小时比例时间序列

熊猫数据框每天重新采样,没有日期时间索引

熊猫数据框每天重新采样,没有日期时间索引

重新采样熊猫数据框并用零填充新行