【发布时间】:2020-07-07 02:21:04
【问题描述】:
所以,假设我有一个这样的数据框。
df = pd.DataFrame({'person':['A', 'A', 'B', 'B', 'A'],
'datetime':['2018-02-26 10:49:32', '2018-02-26 10:58:03', '2018-02-26 10:51:10','2018-02-26 10:58:45', '2018-02-26 10:43:34'],
'location':['a', 'b', 'c', 'd', 'e']})
这表明
person datetime location
A 2018-02-26 10:49:32 a
A 2018-02-26 10:58:03 b
B 2018-02-26 10:51:10 c
B 2018-02-26 10:58:45 d
A 2018-02-26 10:43:34 e
然后我根据每个人和时间对它们进行排序
df.sort_values(by=['person', 'datetime'])
这会按每个人的时间排序。
person datetime location
4 A 2018-02-26 10:43:34 e
0 A 2018-02-26 10:49:32 a
1 A 2018-02-26 10:58:03 b
2 B 2018-02-26 10:51:10 c
3 B 2018-02-26 10:58:45 d
这可以理解为 A 从地点 e 去,然后去 a,然后去 b。与此同时,B 人从 c 地到 d 地。
我想创建一个跟踪每个人的运动的数据框,像这样。
| person | prev_datetime | prev_loc | next_datetime | next_loc |
|--------|---------------------|----------|---------------------|----------|
| A | 2018-02-26 10:43:34 | e | 2018-02-26 10:49:32 | a |
| A | 2018-02-26 10:49:32 | a | 2018-02-26 10:58:03 | b |
| B | 2018-02-26 10:51:10 | c | 2018-02-26 10:58:45 | d |
我真的不知道该怎么做。谢谢。
【问题讨论】: