【发布时间】:2020-10-09 05:29:27
【问题描述】:
我正在尝试使用 Python 来获取时间,以及在点之间移动的对象之间的平均速度。
数据看起来有点像这样,
location initialtime id speed distance
1 2020-09-18T12:03:14.485952Z car_uno 72 9km
2 2020-09-18T12:10:14.485952Z car_uno 83 8km
3 2020-09-18T11:59:14.484781Z car_duo 70 9km
7 2020-09-18T12:00:14.484653Z car_trio 85 8km
8 2020-09-18T12:12:14.484653Z car_trio 70 7.5km
我目前使用的功能基本上是这样的,
Speeds.index = pd.to_datetime(Speeds.index)
..etc
现在,如果我通常这样做,我只会获取 id 的唯一值,
for x in speeds.id.unique():
Speeds[speeds.id=="x"]...
但是这个方法真的不行。
简单地查看是否有多个 id 点随时间推移,然后取给定时间的平均速度的最佳方法是什么?否则,如果没有多个值,则只返回速度本身。
我可以使用更简单的 pandas 过滤器吗?
预期的输出很简单,
area - id - initial time - journey time - average speed.
关键是要获得经过两点的车辆的平均时间和行程时间
【问题讨论】:
-
您可以从示例数据中添加预期输出吗?还是需要
df.groupby('id').mean()? -
@jezrael groupby 是个好主意,哈哈!唯一的问题是,它需要考虑时间 - 我想知道我是否可以为此创建一个函数嗯
-
@LeCoda 我不太明白平均速度是什么意思,是汽车在不同区域和不同时间的平均速度吗?这样的平均值代表什么?
-
如果汽车已经在两个点,那么平均速度,给定点之间所用的时间,以及每个点的速度
-
您想加权给定 ID 的连续条目之间的 timedelta 平均值吗?