首页 > 解决方案 > 获取熊猫数据框中不同值的最有效方法是什么?

问题描述

我有一个如下所示的数据框。

    0   1   2
0   A   B   C
1   B   C   B
2   B   D   E
3   C   E   E
4   B   F   A

我需要从整个 dataframe 中获取唯一值的计数,而不是按列的唯一值。在上面的数据框中,唯一值是 A、B、C、D、E、F。所以,我需要的结果是6

我使用pandas 的squeeze、ravel 和nunique 函数来实现这一点,它们将整个数据帧转换为一个系列。

pd.Series(df.squeeze().values.ravel()).nunique(dropna=True)

请让我知道是否有更好的方法来实现这一点。

标签: pythonpandasdataframeuniquedistinct-values

解决方案


使用numpy.unique唯一length值:

out = len(np.unique(df))
6

推荐阅读