Панды - создавать повторяющиеся данные из указаний изменений во временных рядах - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть временной ряд, который указывает местоположение изменения , например:

08-09-2018 17:00:00, user_1, home
08-09-2018 18:30:00, user_2, home
08-09-2018 18:40:00, user_1, recreation center

Мне нужно создать «корзины» (в этом примере, может быть, каждые 15 м), и мне нужночтобы заполнить каждое ведро тем, что было в последнем ведре, например:

08-09-2018 17:00:00, user_1, home
08-09-2018 17:15:00, user_1, home
08-09-2018 17:30:00, user_1, home
08-09-2018 17:45:00, user_1, home
08-09-2018 18:00:00, user_1, home
08-09-2018 18:15:00, user_1, home
08-09-2018 18:30:00, user_1, home
08-09-2018 18:30:00, user_2, home
08-09-2018 18:45:00, user_1, recreation center
08-09-2018 18:45:00, user_2, home
08-09-2018 19:00:00, user_1, recreation center
08-09-2018 19:00:00, user_2, home

оттуда я получу фиктивные данные для названий местоположений .. но эту часть я знаю, какdo :) Если это поможет, не стесняйтесь сгруппировать это так:

 pd.crosstab([locationDf.date, locationDf.user], locationDf.location)

как я могу сделать первую часть?

Я могу сделать это так:

для пользователя user_loc_dc в locDf.groupby ('user'): user_loc_dc.resample ('15T'). agg ('max'). ffill () # просто добавьте эти

1 Ответ

0 голосов
/ 19 сентября 2018

Использование pd.resample() и ffill():

dates = [pd.Timestamp('08-09-2018 17:00:00'), pd.Timestamp('08-09-2018 18:30:00'), pd.Timestamp('08-09-2018 18:40:00'), pd.Timestamp('08-09-2018 19:00:00')]

data = [['user_1', 'home'], ['user_2', 'home'], ['user_1', 'recreation center'], ['user_2', 'home']]

resampled = pd.Series(data, dates).resample('15T').ffill()

Выход:

2018-08-09 17:00:00                 [user_1, home]
2018-08-09 17:15:00                 [user_1, home]
2018-08-09 17:30:00                 [user_1, home]
2018-08-09 17:45:00                 [user_1, home]
2018-08-09 18:00:00                 [user_1, home]
2018-08-09 18:15:00                 [user_1, home]
2018-08-09 18:30:00                 [user_2, home]
2018-08-09 18:45:00    [user_1, recreation center]
2018-08-09 19:00:00                 [user_2, home]
Freq: 15T, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...