为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2022-08-16 10:16:38
我有一个数据帧“df”,它有一个日期时间索引和另一个名为“Location”的索引列:                        V1   V2  Date       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如您所见,数据帧在同一日期下有多个观测值。为了能够使用一些统计包,我必须使用此方法将数据帧的频率设置为“天”:df = df.asfreq('d')但是,数据帧有两个索引列;一个日期时间和另一个不是。当我尝试使用带字幕的代码块中的方法设置频率时,我得到了这个错误:类型错误: 无法将输入 [(时间戳('2002-07-23 00:00:00+0000', tz='UTC'), '1')] 转换为时间戳如果我尝试仅将日期设置为索引列,则最终会在框架中多次出现同一日期的情况。简而言之;Pandas将这些重复的实例解释为重复实例。您将如何解决此问题?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

有,所以可能的解决方案是首先由DataFrame.unstack进行重塑,然后由DataFrame.stack重塑:MultiIndexDatetimeIndex

df = df.unstack().asfreq('d').stack()

print (df)

                      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




查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信