我想标志,如果一行是重复的,并附上如果它的第一,第二,第三等重复列在Pandas数据框。
更形象地说,我想从:
| 身份证|国家|城市|
| - ------|- ------|- ------|
| 1个|法国|巴黎|
| 第二章|法国|巴黎|
| 三个|法国|里昂|
| 四个|法国|里昂|
| 五个|法国|里昂|
到
| 身份证|国家|城市|重复标记|
| - ------|- ------|- ------|- ------|
| 1个|法国|巴黎|1个|
| 第二章|法国|巴黎|1个|
| 三个|法国|里昂|第二章|
| 四个|法国|里昂|第二章|
| 五个|法国|里昂|第二章|
注意,在查看行是否重复时不考虑id。
1条答案
按热度按时间c2e8gylq1#
两个选项:
首先,如果您有许多列需要比较,可以使用:
我们删除比较中不需要的列,然后使用
.shift()
和.any()
检查每一行是否与其上一行等价,最后使用.cumsum()
读取duplicated_flag
的值。但是,如果您只有两列需要比较(或者由于某种原因,您有很多列需要删除),您可以一次找到一个不匹配的行,然后使用
.cumsum()
获取每行的duplicated_flag
值。这有点冗长,所以我对这个选项不是很满意,但为了完整性,我将其留在这里,以防它更适合您的用例:这些输出: