2016-07-10 64 views
2

我有一個美國民意調查數據的數據框,我試圖每天填寫。我無法弄清楚如何去做。填充多指標大熊貓數據框

這裏是原始數據(數據幀不一定是多指數)。

    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

嘗試:

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

我的代碼中有一些錯誤,我必須修復,一旦我修復它們,這很好。 –