使用日期时间之前和之后的位置从 DataFrame 插入位置
Interpolate position from DataFrame using position before and after datetime
我有一个包含多辆车的日期时间位置数据的 DataFrame。日期时间不连续,同一数据集中有多个车辆。数据集非常大,所以我不确定定期重新采样是否真的可行。
date_time uid lat lon
1 2017-09-26 18:23:00.000 ABC 1.00 1.00
2 2017-09-26 18:23:12.000 ABC 1.20 1.20
3 2017-09-26 18:23:48.000 ABC 1.40 1.40
4 2017-09-26 18:23:52.000 ABC 1.50 1.50
5 2017-09-26 18:23:01.000 DEF 0.10 0.10
6 2017-09-26 18:23:04.000 DEF 0.11 0.11
7 2017-09-26 18:23:24.000 DEF 0.30 0.30
8 2017-09-26 18:23:28.000 DEF 0.32 0.32
9 2017-09-26 18:23:40.000 DEF 0.40 0.40
10 2017-09-26 18:23:03.000 GHI 5.70 5.70
11 2017-09-26 18:23:12.000 GHI 5.80 5.80
12 2017-09-26 18:23:24.000 GHI 5.90 5.90
13 2017-09-26 18:23:30.000 GHI 6.00 6.00
14 2017-09-26 18:24:30.000 JKL 0.00 0.00
15 2017-09-26 18.24.35.000 JKL 1.00 1.00
我想做的是获取之前的位置和 after/equal 到给定的日期时间值,以便我可以插入当时可能的位置。类似于:
target_time = '2017-09-26 18:23:12'
mask = df['date_time'] < target_time LIMIT 1 per UID?? & df['date_time'] >= target_time LIMIT 1 per UID??
points = df[mask]
date_time uid lat lon
1 2017-09-26 18:23:00.000 ABC 1.00 1.00
2 2017-09-26 18:23:12.000 ABC 1.20 1.20
6 2017-09-26 18:23:04.000 DEF 0.11 0.11
7 2017-09-26 18:23:24.000 DEF 0.30 0.30
10 2017-09-26 18:23:03.000 GHI 5.70 5.70
11 2017-09-26 18:23:12.000 GHI 5.80 5.80
这是一个非常简单的循环,但它非常慢,我相信有一个更聪明的解决方案。也许甚至可以一次操作完成。
如有任何想法或建议,我们将不胜感激。
1。
data_time - targer_time
2.
为每个 id
找到最小正数和最小负数
我有一个包含多辆车的日期时间位置数据的 DataFrame。日期时间不连续,同一数据集中有多个车辆。数据集非常大,所以我不确定定期重新采样是否真的可行。
date_time uid lat lon
1 2017-09-26 18:23:00.000 ABC 1.00 1.00
2 2017-09-26 18:23:12.000 ABC 1.20 1.20
3 2017-09-26 18:23:48.000 ABC 1.40 1.40
4 2017-09-26 18:23:52.000 ABC 1.50 1.50
5 2017-09-26 18:23:01.000 DEF 0.10 0.10
6 2017-09-26 18:23:04.000 DEF 0.11 0.11
7 2017-09-26 18:23:24.000 DEF 0.30 0.30
8 2017-09-26 18:23:28.000 DEF 0.32 0.32
9 2017-09-26 18:23:40.000 DEF 0.40 0.40
10 2017-09-26 18:23:03.000 GHI 5.70 5.70
11 2017-09-26 18:23:12.000 GHI 5.80 5.80
12 2017-09-26 18:23:24.000 GHI 5.90 5.90
13 2017-09-26 18:23:30.000 GHI 6.00 6.00
14 2017-09-26 18:24:30.000 JKL 0.00 0.00
15 2017-09-26 18.24.35.000 JKL 1.00 1.00
我想做的是获取之前的位置和 after/equal 到给定的日期时间值,以便我可以插入当时可能的位置。类似于:
target_time = '2017-09-26 18:23:12'
mask = df['date_time'] < target_time LIMIT 1 per UID?? & df['date_time'] >= target_time LIMIT 1 per UID??
points = df[mask]
date_time uid lat lon
1 2017-09-26 18:23:00.000 ABC 1.00 1.00
2 2017-09-26 18:23:12.000 ABC 1.20 1.20
6 2017-09-26 18:23:04.000 DEF 0.11 0.11
7 2017-09-26 18:23:24.000 DEF 0.30 0.30
10 2017-09-26 18:23:03.000 GHI 5.70 5.70
11 2017-09-26 18:23:12.000 GHI 5.80 5.80
这是一个非常简单的循环,但它非常慢,我相信有一个更聪明的解决方案。也许甚至可以一次操作完成。
如有任何想法或建议,我们将不胜感激。
1。 data_time - targer_time 2. 为每个 id
找到最小正数和最小负数