欢迎来到数据科学!在这里,我创建了您的数据框并展示了一种创建所需列的方法。除了 pandas,我还使用 numpy:
import pandas as pd
import numpy as np
# Create df
ID = ['bike', 'bike', 'car', 'car', 'car']
Color = ['red', 'black', 'green', 'orange', 'blue']
df = pd.DataFrame(data={'ID': ID, 'Color': Color})
添加一个名为“Order”的新列,其计数基于每个组 - 这些是仅包含一个 ID 值的迷你数据帧。这利用groupby了 Pandas 数据框上的方法。
df['Order'] = df.groupby('ID').transform(lambda x: 1 + np.arange(len(x)))
该transform方法采用一个函数并将其应用于每个组。我使用匿名函数(只是一个没有名称的函数),也称为lambda 函数,使用关键字lambda。
结果:
Color ID Order
0 red bike 1
1 black bike 2
2 green car 1
3 orange car 2
4 blue car 3
正如anymous.asker 所提到的,如果您发布创建数据框的代码,将来会有所帮助!