使用此处的示例Drop all duplicate rows in Python Pandas
假设我不想删除重复项,但会更改子集中某列中的数据值。
因此,根据示例,如果我们使用subset = [' A',' C']来识别重复项,那么我想更改第1行' A&# 39;从foo到foo1。
我有一个复杂的方法,但必须有一个更简单的方法,利用矢量化/内置功能。</ p>
原创df:
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
所需df:
A B C
0 foo 0 A
1 foo1 1 A
2 foo 1 B
3 bar 1 A
答案 0 :(得分:2)
您可以使用cumcount
并执行类似
>>> c = df.groupby(["A","C"]).cumcount()
>>> c = c.replace(0, '').astype(str)
>>> df["A"] += c
>>> df
A B C
0 foo 0 A
1 foo1 1 A
2 foo 1 B
3 bar 1 A
这是有效的,因为cumcount
给了我们
>>> df.groupby(["A","C"]).cumcount()
0 0
1 1
2 0
3 0
dtype: int64