开发者社区> 问答> 正文

Pandas重叠重采样

我想对我的时间索引DataFrame进行一些重采样。

例如:

>>> df
                     data
date                     
2018-03-09 12:00:00     1
2018-03-09 12:00:01     1
2018-03-09 12:00:02     1
2018-03-09 12:00:03     1
2018-03-09 12:00:04     1
2018-03-09 12:00:05     1
2018-03-09 12:00:06     1
2018-03-09 12:00:07     1
2018-03-09 12:00:08     1
2018-03-09 12:00:09     1
2018-03-09 12:00:10     1
2018-03-09 12:00:11     2
2018-03-09 12:00:12     2
2018-03-09 12:00:13     2
2018-03-09 12:00:14     2
2018-03-09 12:00:15     2
2018-03-09 12:00:16     2
2018-03-09 12:00:17     2
2018-03-09 12:00:18     2
2018-03-09 12:00:19     2
2018-03-09 12:00:20     2
2018-03-09 12:00:21     3
2018-03-09 12:00:22     3
2018-03-09 12:00:23     3
2018-03-09 12:00:24     3
2018-03-09 12:00:25     3
2018-03-09 12:00:26     3
2018-03-09 12:00:27     3
2018-03-09 12:00:28     3
2018-03-09 12:00:29     3
2018-03-09 12:00:30     3

经过10秒和2秒的重叠重采样后,结果应如下所示:

>>> df
                     data
date                     
2018-03-09 12:00:10     14
2018-03-09 12:00:20     28
2018-03-09 12:00:30     34

我尝试将其分组,但是在大型数据集上却非常慢。

是否有一种快速有效的方法来实现这一目标?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 15:57:30 565 0
1 条回答
写回答
取消 提交回答
  • 假设您的数据是规则间隔的,则可以“合并”移位后的序列,然后求和。

    N = 10  # Every 10 seconds from first row
    ov = 2  # 2s overlap on either side
    
    pd.concat([df.shift(i).iloc[::N] for i in range(-ov, N+ov)], axis=1).sum(1)
    

    *

    date 2018-03-09 12:00:00 3.0 2018-03-09 12:00:10 15.0 2018-03-09 12:00:20 28.0 2018-03-09 12:00:30 34.0 dtype: float64 *对于多列,将其沿列轴变成groupby: df['data2'] = df['data']+1 # Another column

    (pd.concat([df.shift(i).iloc[::N] for i in range(-ov, N+ov)], axis=1)
       .groupby(level=0, axis=1).sum())
    
                         data  data2
    date                            
    2018-03-09 12:00:00   3.0    6.0
    2018-03-09 12:00:10  15.0   28.0
    2018-03-09 12:00:20  28.0   42.0
    2018-03-09 12:00:30  34.0   46.0
    

    回答来源:stackoverflow

    2020-03-24 15:57:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载