我有一個字典名稱date_dict由日期時間日期鍵入的值與整數觀測值相對應。我將它轉換爲一個稀疏的序列/數據幀,我想加入或轉換爲具有連續日期的序列/數據幀。討厭的列表理解是我的竅門,以解決熊貓顯然不會自動將日期時間日期對象隱藏到適當的日期時間索引的事實。從稀疏數據框填充連續熊貓數據框
df1 = pd.DataFrame(data=date_dict.values(),
index=[datetime.datetime.combine(i, datetime.time())
for i in date_dict.keys()],
columns=['Name'])
df1 = df1.sort(axis=0)
此示例有1258個觀察值,DateTime索引從2003-06-24運行到2012-11-07。
df1.head()
Name
Date
2003-06-24 2
2003-08-13 1
2003-08-19 2
2003-08-22 1
2003-08-24 5
我可以創建一個連續的日期時間指數空數據幀,但是這引入了不必要的列,似乎笨重。我覺得我錯過了一個涉及連接的更優雅的解決方案。
df2 = pd.DataFrame(data=None,columns=['Empty'],
index=pd.DateRange(min(date_dict.keys()),
max(date_dict.keys())))
df3 = df1.join(df2,how='right')
df3.head()
Name Empty
2003-06-24 2 NaN
2003-06-25 NaN NaN
2003-06-26 NaN NaN
2003-06-27 NaN NaN
2003-06-30 NaN NaN
是否有一個更簡單或更優雅的方式來從稀疏數據幀填滿的連續數據幀,使得有(1)的連續指數,(2)的NaN是0,以及(3)沒有數據幀中剩餘的空列?
Name
2003-06-24 2
2003-06-25 0
2003-06-26 0
2003-06-27 0
2003-06-30 0
謝謝!我用 ts.reindex(pd.date_range(min(date_index),max(date_index)),fill_value = 0) –