Pandas从时间序列的变化指示中创建重复的数据

2024-05-18 05:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表示位置变化的时间序列,如下所示:

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

我需要创建“bucket”(在这个例子中,可能每15米一个),我需要用最后一个bucket中的内容填充每个bucket,如下所示:

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

从那里我将获得位置名的虚拟数据。。但我知道该怎么做:)如果有用的话,可以这样分组:

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

我怎么做第一部分

我可以这样做:

对于user,locDf.groupby('user')中的user\u loc\u dc: user_loc_dc.resample('15T').agg('max').ffill()#只需附加这些


Tags: 数据内容homebucket时间序列dcloc
1条回答
网友
1楼 · 发布于 2024-05-18 05:35:45

使用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

相关问题 更多 >