観測の整数カウントに対応する値を持つ日時日付でキー設定された辞書名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
連続したDateTimeインデックスを使用して空のデータフレームを作成できますが、これにより不要な列が導入され、不格好に見えます。結合を含むよりエレガントなソリューションが欠けているように感じます。
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