设置具有两个索引列的时间序列 Pandas 数据帧的频率

我有一个数据帧“df”,它有一个日期时间索引和另一个名为“Location”的索引列:


                        V1   V2  

Date       Location             

2001-01-01  1           0.5  0.7

            2           0.6  0.5

2001-01-02  3           0.8  0.2

            4           0.8  0.2

2001-01-03  5           0.2  0.4

            6           0.2  0.5

2001-01-04  7           0.2  0.3

            8           0.8  0.7

如您所见,数据帧在同一日期下有多个观测值。


为了能够使用一些统计包,我必须使用此方法将数据帧的频率设置为“天”:


df = df.asfreq('d')

但是,数据帧有两个索引列;一个日期时间和另一个不是。当我尝试使用带字幕的代码块中的方法设置频率时,我得到了这个错误:


类型错误: 无法将输入 [(时间戳('2002-07-23 00:00:00+0000', tz='UTC'), '1')] 转换为时间戳


如果我尝试仅将日期设置为索引列,则最终会在框架中多次出现同一日期的情况。简而言之;Pandas将这些重复的实例解释为重复实例。


您将如何解决此问题?


RISEBY
浏览 123回答 1
1回答

三国纷争

有,所以可能的解决方案是首先由DataFrame.unstack进行重塑,然后由DataFrame.stack重塑:MultiIndexDatetimeIndexdf = df.unstack().asfreq('d').stack()print (df)                      V1   V2Date       Location          2001-01-01 1         0.5  0.7           2         0.6  0.52001-01-02 3         0.8  0.2           4         0.8  0.22001-01-03 5         0.2  0.4           6         0.2  0.52001-01-04 7         0.2  0.3           8         0.8  0.7
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python