簡體   English   中英

如何為熊貓添加一系列后綴以匹配字符串

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

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