我有一些层次数据,从下到下依次是时间序列数据,如下所示:
df = pandas.DataFrame(
{'value_a': values_a, 'value_b': values_b},
index=[states, cities, dates])
df.index.names = ['State', 'City', 'Date']
df
value_a value_b
State City Date
Georgia Atlanta 2012-01-01 0 10
2012-01-02 1 11
2012-01-03 2 12
2012-01-04 3 13
Savanna 2012-01-01 4 14
2012-01-02 5 15
2012-01-03 6 16
2012-01-04 7 17
Alabama Mobile 2012-01-01 8 18
2012-01-02 9 19
2012-01-03 10 20
2012-01-04 11 21
Montgomery 2012-01-01 12 22
2012-01-02 13 23
2012-01-03 14 24
2012-01-04 15 25
我想对每个城市进行时间重采样,所以
df.resample("2D", how="sum")
将输出
value_a value_b
State City Date
Georgia Atlanta 2012-01-01 1 21
2012-01-03 5 25
Savanna 2012-01-01 9 29
2012-01-03 13 33
Alabama Mobile 2012-01-01 17 37
2012-01-03 21 41
Montgomery 2012-01-01 25 45
2012-01-03 29 49
照原样,df.resample('2D', how='sum')
让我
TypeError: Only valid with DatetimeIndex or PeriodIndex
很公平,但我希望这能奏效:
>>> df.swaplevel('Date', 'State').resample('2D', how='sum')
TypeError: Only valid with DatetimeIndex or PeriodIndex
在这一点上,我真的没有什么想法了。。。有什么方法可以帮助我吗?
^{}
允许您指定“目标对象的groupby指令”。在
特别是,即使
df.index
不是DatetimeIndex
,也可以使用它按日期分组:level=-1
告诉pd.Grouper
在多索引的最后一级查找日期。 此外,还可以将其与索引中的其他级别值结合使用:看起来有点尴尬,但是
using_Grouper
比我原来的要快得多 建议,using_reset_index
:收益率
下面是比较5000行数据帧上
using_Grouper
、using_reset_index
、using_stack
的基准:相关问题 更多 >
编程相关推荐