Python 基于重复项更改dataframe列的值

Python 基于重复项更改dataframe列的值,python,pandas,Python,Pandas,假设我用以下方式设置了一个熊猫数据帧: col1| col2 | col3 1 A 10 1 A 10 3 B 12 在第一个实例再次出现后,是否有方法将col2的任何实例的col3值设置为0?我希望输出以下结果: col1| col2 | col3 1 A 10 1 A 0 3 B 12 我为这个令人困惑的问题道歉,这是我能描述它的最好方式 您

假设我用以下方式设置了一个熊猫数据帧:

col1|  col2 | col3

1       A      10

1       A      10

3       B      12
在第一个实例再次出现后,是否有方法将col2的任何实例的col3值设置为0?我希望输出以下结果:

col1|  col2 | col3

1       A      10

1       A      0

3       B      12
我为这个令人困惑的问题道歉,这是我能描述它的最好方式

您可以使用:

您可以使用:

df.loc[df.duplicated(subset='col2'), 'col3'] = 0

    col1 col2  col3
0     1    A    10
1     1    A     0
2     3    B    12
import pandas as pd
import numpy as np

df = pd.DataFrame({'col1': [1, 1, 3],
                   'col2': ['A', 'A', 'B'],
                   'col3': [10, 10, 12]})

df['col3'] = np.where(df['col2'].duplicated(), 0, df['col3'])

df

   col1 col2  col3
0     1    A    10
1     1    A     0
2     3    B    12