首页 > 解决方案 > 如何创建一个从 1 开始的 ID,在排序后每次开始另一个(字符串,时间)变量增加 1(分钟)?

问题描述

正如您在这里看到的Variables,我有四个变量。每个 ID 代表一段道路,在每个时间戳记录一个速度。但是,这部分有 16 个小节,每个小节都有自己的速度。这 16 种速度已创建为 16 行而不是 16 列的一列,但 ID 只是从 1 到 16 一遍又一遍地使它们不唯一。

我需要的是从一个开始创建一个唯一的 ID,这意味着对于每个时间戳我都有(ID 的数量 * 16 个小节)ID。 换句话说,如果它是按时间戳排序,然后是 ID,然后是小节,我需要它从 1 创建一个 ID,每次增加一分钟时从 1 开始。

我希望你们中的一些人可以帮助我。这将不胜感激。

标签: python

解决方案


明白了,这是一个例子——如果你想要不同的格式,你可以改变 new_id 行。

def make_id(row):
    new_id = (row['ID']-1)*16 + row['Segment']
    return new_id

df['UniqID'] = df.apply(make_id, axis = 1)

第 1 节第 1 小节的输出为 1,第 1 节第 16 小节的输出为 16。


推荐阅读