AttributeError: module ‘pandas‘ has no attribute ‘TimeGrouper‘

这篇博客介绍了如何在pandas中处理时间序列数据,通过`resample`函数实现按'key'和时间间隔进行数据分组并求和。首先创建了一个包含'time'、'key'和'value'的DataFrame,然后设置了时间索引,利用'resample'对象按5分钟间隔对数据进行重采样,最后展示了解采样的结果。
摘要由CSDN通过智能技术生成

要为每个’key’的值进行相同的重新采样,我们可以使用pandas.TimeGrouper对象:报错

import pandas as pd
import numpy as np

N = 15
times = pd.date_range('2017-05-20 00:00', freq='1min', periods=N)
df2 = pd.DataFrame({'time': times.repeat(3), 'key': np.tile(['a', 'b', 'c'], N), 'value': np.arange(N * 3.)})
time_key = pd.TimeGrouper('5min')
resampled = (df2.set_index('time').groupby(['key', time_key]).sum())

输出:

AttributeError: module 'pandas' has no attribute 'TimeGrouper'

修改后:
之后我们可以设置时间索引,按’key’和time_key进行分组,再聚合:

from pandas.core import resample as rp
time_key = rp.TimeGrouper('5min')
resampled = (df2.set_index('time')
             .groupby(['key', time_key])
             .sum())
resampled

输出:

Out[12]: 
                         value
key time                      
a   2017-05-20 00:00:00   30.0
    2017-05-20 00:05:00  105.0
    2017-05-20 00:10:00  180.0
b   2017-05-20 00:00:00   35.0
    2017-05-20 00:05:00  110.0
    2017-05-20 00:10:00  185.0
c   2017-05-20 00:00:00   40.0
    2017-05-20 00:05:00  115.0
    2017-05-20 00:10:00  190.0
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值