![557b369bc7a9c507c671444e8089881c.png](https://i-blog.csdnimg.cn/blog_migrate/db701147e57f96ed403d31b519b3800f.jpeg)
在某些应用场景中,会存在多个观测数据落在同一个时间点上的情况。比如:
In [63]: dates=pd.DatetimeIndex(['1/1/2019','1/1/2019','1/1/2019','1/2/2019','1/3/2019'])
In [64]: dup_ts=Series(np.arange(5),index=dates)
In [65]: dup_ts
Out[65]:
2019-01-01 0
2019-01-01 1
2019-01-01 2
2019-01-02 3
2019-01-03 4
dtype: int64
重复性索引
通过is_unique属性,判断唯一性(是否重复):
In [66]: dup_ts.index.is_unique
Out[66]: False
对时间序列进行索引,一是产生标量值,抑或是切片。具体依据所选的时间点是否重复:
- 所选的时间点重复
In [67]: dup_ts['1/1/2019']
Out[67]:
2019-01-01 0
2019-01-01 1
2019-01-01 2
dtype: int64
- 所选的时间点不重复
In [68]: dup_ts['1/3/2019']
Out[68]: 4
时间序列聚合
对具有非唯一时间戳的数据进行整合。一是使用groupby,并传入level=0(索引的唯一一层)
In [69]: grouped=dup_ts.groupby(level=0)
In [70]: grouped
Out[70]: <pandas.core.groupby.generic.SeriesGroupBy object at 0x11ba1f240>
In [71]: grouped.mean()
Out[71]:
2019-01-01 1
2019-01-02 3
2019-01-03 4
dtype: int64
In [72]: grouped.count()
Out[72]:
2019-01-01 3
2019-01-02 1
2019-01-03 1
dtype: int64
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」