![](/img/trans.png)
[英]create ID column in dataframe based on other column values / Pandas -Python
[英]Python dataframe create index column based on other id column
我有一個像這樣的 dataframe:
ID Price
000afb96ded6677c 1514.5
000afb96ded6677c 13.0
000afb96ded6677c 611.0
000afb96ded6677c 723.0
000afb96ded6677c 2065.0
ffea14e87a4e1269 2286.0
ffea14e87a4e1269 1150.0
ffea14e87a4e1269 80.0
fff455057ad492da 650.0
fff5fc66c1fd66c2 450.0
我需要一個 ID 列,它從 1 迭代到有多少行,但我需要它像下面的代碼一樣:
ID Price ID 2
000afb96ded6677c 1514.5 1
000afb96ded6677c 13.0 1
000afb96ded6677c 611.0 1
000afb96ded6677c 723.0 1
000afb96ded6677c 2065.0 1
ffea14e87a4e1269 2286.0 2
ffea14e87a4e1269 1150.0 2
ffea14e87a4e1269 80.0 2
fff455057ad492da 650.0 3
fff5fc66c1fd66c2 450.0 4
嘗試groupby ngroup
+ 1:
df['ID_2'] = df.groupby('ID').ngroup() + 1
或與Rank
:
df['ID_2'] = df['ID'].rank(method='dense').astype(int)
或使用pd.factorize
:
df['ID_2'] = pd.factorize(df['ID'])[0] + 1
df
:
ID Price ID_2
0 000afb96ded6677c 1514.5 1
1 000afb96ded6677c 13.0 1
2 000afb96ded6677c 611.0 1
3 000afb96ded6677c 723.0 1
4 000afb96ded6677c 2065.0 1
5 ffea14e87a4e1269 2286.0 2
6 ffea14e87a4e1269 1150.0 2
7 ffea14e87a4e1269 80.0 2
8 fff455057ad492da 650.0 3
9 fff5fc66c1fd66c2 450.0 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.