如何在pandas中查找多列中的唯一值


通常,您可能希望找到 pandas DataFrame 中多个列的所有唯一值。幸运的是,使用 pandas unique()函数与ravel()函数结合起来很容易做到这一点:

  • unique() :按出现顺序返回唯一值。
  • ravel():返回一系列扁平化数据。

例如,假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e'],
                   'col2': ['a', 'c', 'e', 'f', 'g'],
                   'col3': [11, 8, 10, 6, 6]})

#view DataFrame 
print(df)

  col1 col2 col3
0 aa 11
1 bc 8
2 this 10
3 df 6
4 eg 6

返回唯一值的数组

以下代码展示了如何在col1col2中查找唯一值:

 p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)

从结果中我们可以看到这两列中有7个唯一值: a,b,c,d,e,f,g

返回唯一值的 DataFrame

如果你想将这些值作为DataFrame而不是数组返回,可以使用以下代码:

 unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

p.d. DataFrame (unique)

	0
0 a
1b
2 tbsp
3rd
4 d
5f
6g

返回唯一值的数量

如果您只想知道跨多个列的唯一值的数量,可以使用以下代码:

 unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

len (unique)
7

这告诉我们这两列中有7 个唯一值。

其他资源

如何跨多列合并 Pandas DataFrame
如何根据多个条件过滤 Pandas DataFrame

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注