如何从两个 ID 创建一个新 ID?

How can I create a new ID from two IDs?

如果我有下面示例中的第 1 列和第 2 列,我该如何创建第 3 列?

每当第 2 列增加 1 时,第 3 列就必须增加 1,但仅限于第 1 列中的每个组。

换句话说,第 3 列的计数方式应与第 2 列相同,但每次第 1 列加 1 时重新开始。

你可以试试:

df["col3"] = df.groupby("col1")['col2'].apply(lambda x: x - x.iloc[0] + 1).reset_index(drop=True)

说明:

  1. 使用groupby按照列ColA

  2. 进行分组
  3. 对于每个组,从 col2 中减去第一个值到列 col2 并添加 1

  4. 使用reset_indexdrop=False重置索引以删除二级索引。