的Python:我要检查,如果行有一个数据帧,如果是为任何列的多个相同的价值观,更换空的重复值

问题描述 投票:3回答:2

我是新来的StackOverflow,请原谅我的格式

我的数据框看起来是这样的:

Col1    Col2    Col3    Col4    Col5

A       B       null    A       D
A       B       C       F       C

由于第一排,COL4有重复值,即A,我想用NULL替换它。 同样,在第二行中,COL5有重复值,我想用NULL替换它。

最终的数据帧应该是这样的:

Col1    Col2    Col3    Col4    Col5

A       B       null    null    D
A       B       C       F       null
python pandas dataframe
2个回答
2
投票

使用Series.drop_duplicatesapplyaxis=1由行过程:

df = df.apply(pd.Series.drop_duplicates, axis=1)
print (df)
  Col1 Col2 Col3 Col4 Col5
0    A    B  NaN  NaN    D
1    A    B    C    F  NaN

1
投票

使用pandas.series.duplicated

import pandas as pd

df = pd.DataFrame({'a':['A','C'], 'b':['B','D'], 'c':['A', 'D']})
mask = df.apply(pd.Series.duplicated, 1)

print(df.mask(mask, 'None'))

输出:

   a  b     c                                                                                                                         
0  A  B  None                                                                                                                         
1  C  D  None 
© www.soinside.com 2019 - 2024. All rights reserved.