pandas更改重复行的特定列值

时间:2016-05-21 20:12:28

标签: python pandas duplicates

使用此处的示例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

1 个答案:

答案 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