#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