熊猫重新分配数据框中的行值

时间:2020-10-21 15:37:19

标签: python pandas

我的输入数据框是;

ID   Amount   result
45   1        default
46   2        default
47   3        default
48   5        default
48   10       default
49   12       default
50   5        default
50   7        default
50   9        default

所需的输出为;

ID   Amount   result
45   1        default1
46   2        default1
47   3        default1
48   5        default1
48   10       default2
49   12       default1
50   5        default1
50   7        default2
50   9        default3

如果未更改ID,则默认字符串应像“ default1”,“ default2”这样增加。首先应始终为“ default1”。

您能帮我吗?

1 个答案:

答案 0 :(得分:2)

使用groupby().cumcount()

df['result'] += df.groupby('ID').cumcount().add(1).astype(str)

输出:

   ID  Amount    result
0  45       1  default1
1  46       2  default1
2  47       3  default1
3  48       5  default1
4  48      10  default2
5  49      12  default1
6  50       5  default1
7  50       7  default2
8  50       9  default3