Вставить недостающие строки в определенный временной ряд

#python #pandas #timestamp

#python #pandas #временная метка

Вопрос:

У меня есть конкретный набор данных временных рядов, который приведен ниже.

 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.

есть идея?

Комментарии:

1. Привет, добро пожаловать в SO. Было бы здорово, если бы вы могли показать какой-нибудь код вашей попытки?

Ответ №1:

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