pandas dataframe按时间连续性分块
2021/5/20 18:26:42
本文主要是介绍pandas dataframe按时间连续性分块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
当时序数据不连续时,需要将连续的数据划分为一块,基于pandas dataframe的方案如下。
>>> df DateAnalyzed Val 1 2018-03-18 0.470253 2 2018-03-19 0.470253 3 2018-03-20 0.470253 4 2017-01-20 0.485949 # < watch out for this 5 2018-09-25 0.467729 6 2018-09-26 0.467729 7 2018-09-27 0.467729 >>> df.dtypes DateAnalyzed datetime64[ns] Val float64 dtype: object >>> dt = df['DateAnalyzed'] >>> day = pd.Timedelta('1d') >>> in_block = ((dt - dt.shift(-1)).abs() == day) | (dt.diff() == day) >>> in_block 1 True 2 True 3 True 4 False 5 True 6 True 7 True Name: DateAnalyzed, dtype: bool >>> filt = df.loc[in_block] >>> breaks = filt['DateAnalyzed'].diff() != day >>> groups = breaks.cumsum() >>> groups 1 1 2 1 3 1 5 2 6 2 7 2 Name: DateAnalyzed, dtype: int64 >>> for _, frame in filt.groupby(groups): ... print(frame, end='\n\n') ... DateAnalyzed Val 1 2018-03-18 0.470253 2 2018-03-19 0.470253 3 2018-03-20 0.470253 DateAnalyzed Val 5 2018-09-25 0.467729 6 2018-09-26 0.467729 7 2018-09-27 0.467729
这篇关于pandas dataframe按时间连续性分块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南