基于重复项更改 pandas 数据帧列的值

3

假设我有一个如下设置的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

对于这个令人困惑的问题,我道歉了,这是我能想到的最好描述方式!

2个回答

2
您可以使用 DataFrame.duplicated
df.loc[df.duplicated(subset='col2'), 'col3'] = 0

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

1
你可以使用np.where
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接