python中编写程序删除列表中的重复值_python – Pandas:根据列表中的重复值删除行...

我想根据字符串中是否有一个字符串重复来删除数据帧中的行.例如,如果字符串是jkl-ghi-jkl,我会删除此行,因为jkl重复两次.我认为创建一个列表并检查列表中的重复项是理想的方法.

此示例的我的数据帧包含1列和两个数据点:

df1 = pd.DataFrame({'Col1' : ['abc-def-ghi-jkl', 'jkl-ghi-jkl-mno'],})

我采取的第一步是对我的数据应用拆分,并拆分“ – ”

List = df1['Col1].str.split('-')

List

哪个产生输出:

0 [abc, def, ghi, jkl]

1 [jkl, ghi, jkl, mno]

Name: Col1, dtype: object

我采取的第二步是将输出转换为列表:

List = List.tolist()

产量:

[['abc', 'def', 'ghi', 'jkl'], ['jkl', 'ghi', 'jkl', 'mno']]

我希望完成的最后一步是将完整列表与不同的唯一值列表进行比较:

len(List) > len(set(List))

这会产生错误:

TypeError: unhashable type: 'list'

我知道我的.tolist()创建了一个2系列的列表.有没有办法将这些系列转换为列表以测试重复?我希望使用这段代码:

len(List) > len(set(List)

使用drop来删除每个单元格中具有重复值的所有行.

这是正确的接近方式,还是有更简单的方法?

我的结束输出应该如下所示:

Col1

abc-def-ghi-jkl

因为字符串jkl-ghi-jkl-mno因“jkl”重复两次而被删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值