【问题标题】:Distinct combinations values in Pandas DataFramesPandas DataFrames 中的不同组合值
【发布时间】:2020-01-08 20:13:57
【问题描述】:

有没有一种简单的方法可以提取数据框中不同的值组合?我已经将 pd.Series.unique() 用于单列,但是多列呢?

示例数据:

df = pd.DataFrame(data=[[1, 'a'], [2, 'a'], [3, 'b'], [3, 'b'], [1, 'b'], [1, 'b']], 
                  columns=['number', 'letter'])

Expected output:
(1, a)
(2, a)
(3, b)
(1, b)

理想情况下,我想要一个具有不同值的元组的单独 Series 对象。

【问题讨论】:

  • 组合到底是什么意思?你能举个例子解释一下吗?

标签: python pandas


【解决方案1】:

您可以压缩列并创建一个集合:

>>> set(zip(df.number, df.letter))
{(1, 'a'), (1, 'b'), (2, 'a'), (3, 'b')}

【讨论】:

    【解决方案2】:

    您可以为这些列设置索引,然后在索引上调用unique

    In [165]:
    idx = df.set_index(['number','letter']).index
    idx.unique()
    
    Out[165]:
    array([(1, 'a'), (2, 'a'), (3, 'b'), (1, 'b')], dtype=object)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-28
      • 2019-02-25
      • 2018-05-16
      • 2013-08-03
      • 1970-01-01
      • 2018-06-25
      • 2015-06-02
      • 1970-01-01
      相关资源
      最近更新 更多