我的 df 如下所示:
column1 column2
x X22
x X26
x X287
y X26
y X22
y X287
y X26
z X27
c X29
c X22
我想創建一個新列,輸出應該是這樣的:
column1 column2 column3
x X22 1
x X26 2
x X287 3
y X26 1
y X22 2
y X287 3
y X26 4
z X27 1
c X29 1
c X22 2
因此,如您所見,我需要一個基于 column1 的值從 1 到 x 的列。因此,如果在 column1 中我們有值“x”,我想創建一個值從 1 到 3 的第 3 列。我不能使用 groupby,因為我必須保留我的 column2。你有什么主意嗎?
問候托馬斯
uj5u.com熱心網友回復:
您可以使用groupby cumcount:
df['column3'] = df.groupby('column1').cumcount().add(1)
輸出:
column1 column2 column3
0 x X22 1
1 x X26 2
2 x X287 3
3 y X26 1
4 y X22 2
5 y X287 3
6 y X26 4
7 z X27 1
8 c X29 1
9 c X22 2
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/322700.html
