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中
这需要子集重复数据删除而不是总数据帧重复数据删除。
解决方案
利用:
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
推荐阅读
- javascript - Javascript 解析日期 Contract_End_Date
- android - 在 Kotlin Multiplatform 上复制到剪贴板
- google-cloud-platform - 系统尚未使用 systemd 作为 init system (PID 1) 引导。不能操作。无法连接到总线:主机已关闭
- sql - NoSQL 或 SQL 或其他用于缩放 Excel 电子表格的工具
- node.js - Graphql Mysql - 从 JSON 格式的表中获取行
- excel - VBA Excel 中的索引匹配函数的错误处理
- c# - 如何在带有 LINQ 的子查询中使用 GroupBy()?
- javascript - 如何将分页应用于 json-server 中的子对象?
- c# - 当声明 broadFileSystemAccess 时触发用户同意对话框
- android - Appium+ WebdriverIO 查找元素问题