我有一个字典名称 date_dict ,由 datetime 日期键控,其值对应于观察的整数计数。我将其转换为带有审查观察的稀疏系列/数据框,我想加入或转换为具有连续日期的系列/数据框。讨厌的列表理解是我绕过熊猫显然不会自动将 datetime 日期对象转换为适当的 DateTime 索引这一事实的技巧。
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 年 6 月 24 日到 2012 年 11 月 7 日运行。
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