可以使用pandas中的groupby()和cumcount()函数来按组为每个连续发生的个体创建ID。以下是示例代码:
import pandas as pd
df = pd.DataFrame({'Group': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'], 'Individual': [1, 2, 1, 1, 2, 2, 3, 1, 2, 3, 2]})
df = df.sort_values(['Group', 'Individual'])
df['ID'] = df.groupby(['Group', (df['Individual'] != df['Individual'].shift()).cumsum()]).cumcount() + 1
print(df)
输出结果为:
Group Individual ID 0 A 1 1 2 A 1 2 1 A 2 1 3 B 1 1 4 B 2 1 5 B 2 2 6 B 3 1 7 C 1 1 8 C 2 1 10 C 2 2 9 C 3 1
上一篇:按组为对象数组创建索引列
下一篇:按组向DF中插入2个空白行