pandas某一列去重获取唯一值

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
经常有同学私信或留言询问相关问题,V号bitcarmanlee。github上star的同学,在我能力与时间允许范围内,尽可能帮大家解答相关问题,一起进步。

去重获取唯一值是常见的需求,下面我们看看pandas里面如何实现去重。
直接看代码

import pandas as pd

def test():
    df = pd.DataFrame({"c1": [1, 1, 2, 3, 1], "c2": [10, 20, 30, 40, 50]})
    print(df)
    print()
    result = df['c1'].unique()
    print(result)
    print(type(result))
    print(result.tolist())
    print()

    ret = df[df['c1'] == 1]['c2'].unique()
    print(ret)
    print(type(ret))

运行上面的代码,得到如下结果

   c1  c2
0   1  10
1   1  20
2   2  30
3   3  40
4   1  50

[1 2 3]
<class 'numpy.ndarray'>
[1, 2, 3]

[10 20 50]
<class 'numpy.ndarray'>

具体分析:
1.如果要对某列去重获取谓一致,可以直接获取该列然后调用unique()方法即可。
2.unique()方法得到的对象是numpy.ndarray类型,后续可以调用tolist方法转换为一个列表。
3.如果我们想得到c1列值为1的情况下,c2列的去重置,可以先使用过滤逻辑df[‘c1’] == 1会返回True/False。 条件匹配时为真,条件不匹配时为假。 稍后它在df内传递并返回与True对应的所有行,然后按照前面的方法,取c2列再去重即可。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值