簡體   English   中英

Pandas:具有基於條件的唯一值的新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM