删除连续重复的相同值,并在pandas Dataframe中转换为单个值

时间:2019-05-14 04:09:08

标签: python pandas dataframe

我有一个数据集,在同一行中有多个重复的值。这是数据的外观。

id datapoint11     datapoint12    datapoint21    datapoint22
1  example.com    example2.com  example.com   example.com
2. test.com       test.com      test2.com      test.com
3. ex.com         ex.com        ex1.com       ex.com
4. te.com         test.com      te.com       test.com

我已经消除了将(datapoint11,datapoint12)视为一个集合并将(datapoint21,datapoint22)视为另一集合的重复值,并为每个id将它们替换为null。 输出如下所示:

id datapoint11    datapoint12  datapoint21    datapoint22
1  example.com    example2.com  example.com   nan
2. test.com       nan           test2.com     test.com
3. ex.com         nan           ex1.com       ex.com
4. te.com         test.com      te.com       test.com

代码应在python中

这需要子集重复数据删除,而不是整个数据帧重复数据删除。

1 个答案:

答案 0 :(得分:1)

使用:

df.where(df.apply(lambda x: ~x.duplicated(),axis=1),np.nan)

    id   datapoint1    datapoint2 datapoint3    datapoint4
0  1.0  example.com  example2.com        NaN  example3.com
1  2.0     test.com           NaN        NaN           NaN
2  3.0       ex.com           NaN    ex1.com           NaN
3  4.0       te.com      test.com        NaN           NaN