首页 > 解决方案 > 在特定时间序列中插入缺失的行

问题描述

我有一个特定的时间序列数据集,如下所示。

0     2018-01-01 00:00:00+00:00  ...                             
1     2018-01-01 00:10:00+00:00  ...                              
2     2018-01-01 00:20:00+00:00  ...                             
3     2018-01-01 00:30:00+00:00  ...                             
4     2018-01-01 00:50:00+00:00  ...                            
5     2018-01-01 01:00:00+00:00  ...                              
6     2018-01-01 01:20:00+00:00  ...                             
7     2018-01-01 01:40:00+00:00  ...
.
.
.

但是,数据集中有一些缺失的行。我已经搜索了如何为此特定数据集插入行,但没有找到任何有用的帮助。在这个数据集中,我们必须添加每 10 分钟有一个条目的行,其他列应该有 Nan 值。

任何想法?

标签: pythonpandastimestamp

解决方案


首先创建DatetimeIndex并调用DataFrame.asfreq

print (df)
                    date_col  value
0  2018-01-01 00:00:00+00:00      4
1  2018-01-01 00:10:00+00:00      9
2  2018-01-01 00:20:00+00:00      1
3  2018-01-01 00:30:00+00:00      6
4  2018-01-01 00:50:00+00:00      3
5  2018-01-01 01:00:00+00:00      4
6  2018-01-01 01:20:00+00:00      5
7  2018-01-01 01:40:00+00:00      0

#if necessary
df['date_col'] = pd.to_datetime(df['date_col'])

df = df.set_index('date_col').asfreq('10Min')
print (df)
                           value
date_col                        
2018-01-01 00:00:00+00:00    4.0
2018-01-01 00:10:00+00:00    9.0
2018-01-01 00:20:00+00:00    1.0
2018-01-01 00:30:00+00:00    6.0
2018-01-01 00:40:00+00:00    NaN
2018-01-01 00:50:00+00:00    3.0
2018-01-01 01:00:00+00:00    4.0
2018-01-01 01:10:00+00:00    NaN
2018-01-01 01:20:00+00:00    5.0
2018-01-01 01:30:00+00:00    NaN
2018-01-01 01:40:00+00:00    0.0

推荐阅读