【发布时间】:2022-01-23 22:38:56
【问题描述】:
我想为每个组分配一个编号。我试着做
df['group_n'] = df.groupby('ID').ngroup()
但它给了我一个错误消息:
SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置值。 尝试改用 .loc[row_indexer,col_indexer] = value 请参阅文档中的注意事项:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
如果我这样做,df['group_n'] = df.groupby('ID').ngroup().add(1)
我按降序得到 _n(意思是 C:3、B:2、A:1)有没有办法保留该顺序但 group_n 从 0 开始?
我的当前表:
ID date sender
C Jan20 3
C Feb20 7
C Mar20 12
C Apr20 15
B Mar20 1
B May20 10
B Jun20 15
...
A Jan21 10
A Feb21 12
A Mar21 20
A Apr21 5
想要的表:
ID date sender group_n
C Jan20 3 1
C Feb20 7 1
C Mar20 12 1
C Apr20 15 1
B Mar20 1 2
B May20 10 2
B Jun20 15 2
A Jan21 10 3
A Feb21 12 3
A Mar21 20 3
A Apr21 5 3
提前谢谢你!
【问题讨论】:
-
group_n是否对应ID?