[英]Pandas: new column with unique values based on condition
我需要為兩列的每個值組合創建一個具有唯一值的新“標識符列”。 例如,當ID和相位相同時,應該使用相同的“標識符”(例如 r1 和 ph1 [但是當 r1 和 ph2 時,應該將一個新的、唯一的值添加到列中])
df
ID phase side values
r1 ph1 l 12
r1 ph1 r 34
r1 ph2 l 93
s4 ph3 l 21
s3 ph2 l 88
s3 ph2 r 54
...
我需要一個新列(idx),如下所示:
new_df
ID phase side values idx
r1 ph1 l 12 1
r1 ph1 r 34 1
r1 ph2 l 93 2
s4 ph3 l 21 3
s3 ph2 l 88 4
s3 ph2 r 54 4
...
我已經嘗試應用這個問題的代碼,但無法實現增加 idx 中的值的方法。
任何關於如何實現這一點的建議都將非常受歡迎!
嘗試使用groupby ngroup
+ 1,使用sort=False
以確保按照它們在 DataFrame 中出現的順序枚舉組:
df['idx'] = df.groupby(['ID', 'phase'], sort=False).ngroup() + 1
df
:
ID phase side values idx
0 r1 ph1 l 12 1
1 r1 ph1 r 34 1
2 r1 ph2 l 93 2
3 s4 ph3 l 21 3
4 s3 ph2 l 88 4
5 s3 ph2 r 54 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.