2016-07-10 4 views
2

У меня есть dataframe данных опросов общественного мнения США, которые я пытаюсь выложить ежедневно. Я не могу понять, как это сделать.Заполнение мультиданных pandas dataframe

Вот исходные данные (dataframe не обязательно должен быть multiindex).

    Democratic   Other Republican 
Date  State             
2008-11-04 AZ  0.451153  0.012495 0.536352 
2012-05-20 AZ  0.462500  0.000000 0.537500 
... 
2008-11-04 WI  0.562178  0.014686 0.423137 
2012-11-03 WI  0.515152  0.000000 0.484848 

Я хочу раздувания так это выглядит примерно так:

    Democratic   Other Republican 
Date  State             
2008-11-04 AZ  0.451153  0.012495 0.536352 
2008-11-05 AZ  0.451153  0.012495 0.536352 
... 
2012-05-20 AZ  0.462500  0.000000 0.537500 
2012-05-21 AZ  0.462500  0.000000 0.537500 
... 
2012-11-06 AZ  0.462500  0.000000 0.537500 
... 
2008-11-04 WI  0.562178  0.014686 0.423137 
2008-11-05 WI  0.562178  0.014686 0.423137 
... 
2012-11-03 WI  0.515152  0.000000 0.484848 
2012-11-04 WI  0.515152  0.000000 0.484848 
2012-11-05 WI  0.515152  0.000000 0.484848 
2012-11-06 WI  0.515152  0.000000 0.484848 

Я попытался сделать это:

election_range = pd.date_range('2008-11-06', '2012-11-06') 
dailies.reindex(election_range, method='pad') 

, но я получаю эту ошибку:

ValueError: cannot include dtype 'M' in a buffer 

Я пробовал просто индексировать дату, но я получил что индекс не был уникальным.

Очевидное, что нужно разделить кадр по отдельности, переиндексировать и комбинировать фреймы, но должен быть лучший способ сделать это. У кого-нибудь есть идеи?

ответ

0

Try:

start = df.index.levels[0].min() 
end = df.index.levels[0].max() 
days = pd.date_range(start, end) 
df.unstack().reindex(days).ffill().stack().sort_index(level=[1, 0]) 
+0

Благодаря piRSquared - Я думаю, что этот подход может работать. Код, который вы написали, не работает для меня, но он достаточно близко. Я получу эту работу и отправлю ответ здесь, затем отметьте вопрос как решенный. Я ценю вашу помощь - спасибо. –

+0

У меня были некоторые ошибки в другом месте моего кода, который я должен был исправить, как только я их исправил, это сработало отлично. –

Смежные вопросы