[英]Remove duplicates from list type pandas column
我有一个这样的数据框,
df
col1 col2
[1,2,3] [4,5]
[1,2,3] [6,7]
[4,5,6] [8,9]
[9,8,7,1] [1,2]
[9,8,7,1] [3,4]
现在我想从 col1 中删除重复项,并保留第一行重复值,以便数据框看起来像,
col1 col2
[1,2,3] [4,5]
[4,5,6] [8,9]
[9,8,7,1] [1,2]
As.drop_duplicates() 在这里不起作用,正在寻找一些 pandas 解决方案,以便比使用 for 循环更有效地执行此操作。
我们可以尝试将col1
中的列表映射到tuple
,然后我们可以使用duplicated
创建一个 boolean 掩码,可用于过滤行
df[~df['col1'].map(tuple).duplicated()]
col1 col2
0 [1, 2, 3] [4,5]
2 [4, 5, 6] [8,9]
3 [9, 8, 7, 1] [1,2]
PS:要使drop_duplicates
起作用,列中的值必须是hashable
或换句话说immutable
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.