Добавление индекса между двумя индексами даты и времени - PullRequest
0 голосов
/ 05 мая 2019

Dataframe: у меня есть индекс даты и времени, но он пропускает 17:00 каждый день.Как бы я добавил дополнительную yyyy-mm-dd 17:00 строку в каждый день?

Скажите, если у меня есть:

                price
2017-01-01 16:55  1.2
2017-01-01 17:05  2.3
2017-01-01 17:10  3.4
.
.
.
2019-01-01 16:55  23
2019-01-01 17:05  29
2019-01-01 17:10  20

Я хочу добавить строки в 17:00 с помощью NaNs, чтобы у меня было

2017-01-01 16:55  1.2
2017-01-01 17:00  NaN
2017-01-01 17:05  2.3
2017-01-01 17:10  3.4

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Использование reindex:

from io import StringIO
# sample data
s = """date_time,price
2017-01-01 16:55,1.2
2017-01-01 17:05,2.3
2017-01-01 17:10,3.4"""

df = pd.read_csv(StringIO(s))
df['date_time'] = pd.to_datetime(df['date_time'])
df = df.set_index('date_time')

# create a date range with the index min and max and set to whatever freq you would like
new_idx = pd.date_range(df.index.min(), df.index.max(), freq='5T')
df.reindex(new_idx)

                    price
2017-01-01 16:55:00   1.2
2017-01-01 17:00:00   NaN
2017-01-01 17:05:00   2.3
2017-01-01 17:10:00   3.4
0 голосов
/ 05 мая 2019

Поскольку у вас разные date, вам понадобится groupby здесь, и я использую resample

df.groupby(df.index.date).apply(lambda x : x.resample('5 min').mean()).reset_index(level=0,drop=True)
Out[13]: 
                     price
date_time                 
2017-01-01 16:55:00    1.2
2017-01-01 17:00:00    NaN
2017-01-01 17:05:00    2.3
2017-01-01 17:10:00    3.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...