[英]How to add a sequential suffix to a pandas Series of strings for matching strings
我想創建一個新列,將一個連續的數字后綴附加到匹配的值。
如果我從以下內容開始...
d = {'item': ['A', 'A', 'B', 'C', 'C', 'A'],
'year': [2019, 2019, 2019, 2019, 2020, 2020]}
df0 = pd.DataFrame(d)
item year
0 A 2019
1 A 2019
2 B 2019
3 C 2019
4 C 2020
5 A 2020
我想要這個中間步驟,
item item_number year
0 A 1 2019
1 A 2 2019
2 B 1 2019
3 C 1 2019
4 C 2 2020
5 A 3 2020
然后是最終形式。
numbered_item item year
0 A 1 A 2019
1 A 2 A 2019
2 B 1 B 2019
3 C 1 C 2019
4 C 2 C 2020
5 A 3 A 2020
使用df.insert()
將列插入特定的位置,然后使用df.groupby().cumcount()
:
df0.insert(0,'numbered_item',df0.item+df0.groupby('item').cumcount().add(1).astype(str))
print(df0)
numbered_item item year
0 A1 A 2019
1 A2 A 2019
2 B1 B 2019
3 C1 C 2019
4 C2 C 2020
5 A3 A 2020
嘗試:
df0['item_number'] = df0.groupby('item').cumcount()+1
df0['numbered_item'] = df0['item'].astype(str) + ' ' + df0['item_number'].astype(str)
輸出:
item year item_number numbered_item
0 A 2019 1 A 1
1 A 2019 2 A 2
2 B 2019 1 B 1
3 C 2019 1 C 1
4 C 2020 2 C 2
5 A 2020 3 A 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.