gpt4 book ai didi

python - 如何可视化在 pandas 中的某个位置花费的连续时间?

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:34 25 4
gpt4 key购买 nike

我有一些带有时间戳和位置数据的数据,如下所示:

A  2013-02-05 19:45:00    (39.94, -86.159)
A 2013-02-05 19:55:00 (39.94, -86.159)
A 2013-02-05 20:00:00 (39.777, -85.995)
A 2013-02-05 20:05:00 (39.775, -85.978)
B 2013-02-05 22:20:00 (39.935, -86.159)
B 2013-02-05 22:25:00 (39.935, -86.159)
B 2013-02-05 23:55:00 (39.951, -86.151)
B 2013-02-06 00:00:00 (39.951, -86.151)
B 2013-02-06 00:05:00 (39.906, -86.196)
C 2013-02-06 00:25:00 (39.82, -86.249)
C 2013-02-06 00:30:00 (39.82, -86.249)
C 2013-02-06 02:45:00 (41.498, -81.527)
C 2013-02-06 02:55:00 (41.498, -81.527)
C 2013-02-06 04:35:00 (39.82, -86.249)
C 2013-02-06 04:40:00 (39.82, -86.249)

我需要做的是,对于每个用户每天获取某人连续出现在一个位置的次数的直方图。因此,我想标记每个连续时间段,其中每个用户每天的位置保持不变。

我该如何在 python pandas 中实现这一点?

用户在一天内重复该位置的情况是可能的,如用户 C 所示,该位置(39.82.-86.249)再次出现。因此,这些情况应被视为单独的连续时间。

最佳答案

我认为您正在寻找 pd.Series.shift

x = pd.Series([1, 3, 3, 2, 3, 3])

x
0 1
1 3
2 3
3 2
4 3
5 3

x.shift(-1)
0 3
1 3
2 2
3 3
4 3
5 NaN

(x != x.shift(-1)).sum()
4

假设问题中的数据是输出

df[['COL1', 'COL2', 'COL3']]

然后,这应该可以为您提供每个用户/每天的唯一位置数量。我不确定这是否正是您想要的,但应该有助于入门

df['DATE'] = df.COL2.apply(lambda s: pd.to_datetime(s).date())
df.groupby(['COL1', 'DATE']).apply(lambda sdf: (sdf.COL3 != sdf.COL3).sum())

关于python - 如何可视化在 pandas 中的某个位置花费的连续时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com