我将以下时间序列数据集作为大熊猫数据框的一天销售数量。
date, sales
20161224,5
20161225,2
20161227,4
20161231,8
现在,如果我必须在此处包含缺少的数据点(即缺少日期)并使用常量值(零)并希望使其看起来如下,我该如何有效地执行此操作(假设数据帧为~50MB )使用熊猫。
date, sales
20161224,5
20161225,2
20161226,0**
20161227,4
20161228,0**
20161229,0**
20161231,8
**缺少已添加到数据框的行。
任何帮助将不胜感激。
答案 0 :(得分:3)
您可以首先投放到to_datetime
列date
,然后set_index
和reindex
投标index
,reset_index
的最小值和最大值如有必要,请按strftime
更改格式:
df.date = pd.to_datetime(df.date, format='%Y%m%d')
df = df.set_index('date')
df = df.reindex(pd.date_range(df.index.min(), df.index.max()), fill_value=0)
.reset_index()
.rename(columns={'index':'date'})
print (df)
date sales
0 2016-12-24 5
1 2016-12-25 2
2 2016-12-26 0
3 2016-12-27 4
4 2016-12-28 0
5 2016-12-29 0
6 2016-12-30 0
7 2016-12-31 8
最后如果需要更改格式:
df.date = df.date.dt.strftime('%Y%m%d')
print (df)
date sales
0 20161224 5
1 20161225 2
2 20161226 0
3 20161227 4
4 20161228 0
5 20161229 0
6 20161230 0
7 20161231 8