У меня есть некоторые иерархические данные, которые прилегал в данных временных рядов, которая выглядит примерно так:Resampling В пределах Панды мультииндексных
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
в этот момент я действительно иссякают идеи ... есть какой-то способ стека и поместить значение мощь быть в состоянии помочь мне?
Спасибо, что, безусловно, выполняет эту работу, но эта группа принуждает нас чтобы перекомментировать отношения, которые мы уже установили в нашем иерархическом индексе. Нет ли способа сделать это с помощью группировок, которые мы уже построили в нашем иерархическом индексе, или иерархические индексы, которые просто не предназначены для использования в таких вещах? –
Извините, я не достаточно опытен, чтобы сказать Панды. Вышеизложенное является скорее обходным решением, чем решением. 'df.reset_index' может быть медленной операцией, и было бы намного лучше, если бы это можно было сделать без него. – unutbu
Альтернативой было бы расколоть столбцы состояния и города перед повторной выборкой, но я сомневаюсь, что это более эффективно. –