Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:我想检查一个数据帧中的任何列的行是否有多个相同的值,如果是,用null替换重复的值_Python_Pandas_Dataframe - Fatal编程技术网

Python:我想检查一个数据帧中的任何列的行是否有多个相同的值,如果是,用null替换重复的值

Python:我想检查一个数据帧中的任何列的行是否有多个相同的值,如果是,用null替换重复的值,python,pandas,dataframe,Python,Pandas,Dataframe,我是stackoverflow新手,请原谅我的格式化 我的数据框如下所示: Col1 Col2 Col3 Col4 Col5 A B null A D A B C F C 因为在第一行中,Col4有一个重复的值,即a,所以我想用null替换它。 类似地,在第二行中,Col5有一个重复的值,我想用null替换它 最终的数据帧应该如下所示: Col1 Col2 Col3

我是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
使用:

输出:

   a  b     c                                                                                                                         
0  A  B  None                                                                                                                         
1  C  D  None 
与轴=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

这是一个很好的小数据帧代码。但是,对于具有约100万条记录的数据帧,“应用”功能非常慢。我还有别的办法吗?@RishabGupta-hmmm,不太容易,你能检查一下
df1=df.reset_index().melt('index')。删除重复项(['index','value'])。分配(g=lambda x:x.groupby('variable').cumcount()
,然后
df2=df1.pivot('g','variable','value')
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