首页 > 解决方案 > 删除连续重复的相同值并转换为 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中

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

标签: pythonpandasdataframe

解决方案


利用:

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

推荐阅读