Python 替换选定列中特定的按行重复单元格,而不删除行

Python 替换选定列中特定的按行重复单元格,而不删除行,python,pandas,pandas-1.0,Python,Pandas,Pandas 1.0,如何替换选定列中的特定行重复单元格而不删除行(最好不在行中循环) 基本上,我希望保留第一个值,并用NAN替换行中剩余的重复项 例如: df_example = pd.DataFrame({'A':['a' , 'b', 'c'], 'B':['a', 'f', 'c'],'C':[1,2,3]}) df_example.head() 原件: A B C 0 a a 1 1 b f 2 2 c c 3 A B C D 0

如何替换选定列中的特定行重复单元格而不删除行(最好不在行中循环)

基本上,我希望保留第一个值,并用NAN替换行中剩余的重复项

例如:

df_example = pd.DataFrame({'A':['a' , 'b', 'c'], 'B':['a', 'f', 'c'],'C':[1,2,3]})
df_example.head() 
原件:

    A   B   C
0   a   a   1
1   b   f   2
2   c   c   3
    A   B   C D 
0   a   1   a 1
1   b   2   f 5
2   c   3   c 3
预期产出:

    A   B   C
0   a   nan 1
1   b   f   2
2   c   nan 3
    A   B   C D 
0   a   1   nan nan
1   b   2   f 5
2   c   3   nan nan
更复杂的示例如下所示:

原件:

    A   B   C
0   a   a   1
1   b   f   2
2   c   c   3
    A   B   C D 
0   a   1   a 1
1   b   2   f 5
2   c   3   c 3
预期产出:

    A   B   C
0   a   nan 1
1   b   f   2
2   c   nan 3
    A   B   C D 
0   a   1   nan nan
1   b   2   f 5
2   c   3   nan nan
与中的每行一起使用:

使用新数据:

df_example = df_example.mask(df_example.apply(lambda x: x.duplicated(), axis=1))
print (df_example)
   A  B    C    D
0  a  1  NaN  NaN
1  b  2    f  5.0
2  c  3  NaN  NaN