小编Cha*_*She的帖子

从稀疏数据帧填充连续的pandas数据帧

我有一个由日期时间日期键入的字典名称date_dict,其值对应于观察的整数计数.我将其转换为稀疏系列/数据框,其中包含我想要加入或转换为具有连续日期的系列/数据框的审查观察.令人讨厌的列表理解是我解决这样一个事实:大熊猫显然不会自动将日期时间日期对象转换为适当的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)
Run Code Online (Sandbox Code Playgroud)

此示例有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
Run Code Online (Sandbox Code Playgroud)

我可以创建一个带有连续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
Run Code Online (Sandbox Code Playgroud)

是否有更简单或更优雅的方法从稀疏数据帧中填充连续数据帧,以便存在(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
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

16
推荐指数
1
解决办法
6793
查看次数

标签 统计

pandas ×1

python ×1

python-2.7 ×1