首页 > 解决方案 > 计算每列的不同值,返回数据框,并对值进行排序

问题描述

这是我的代码:

for column in list(data.columns):
    pd.DataFrame(columns=column, data=data.columns.nunique()).sort_values()

这不行……

无论是定义一个函数还是使用一个 for 循环,我怎样才能简单地检查每列的唯一值编号?

标签: pythonpandasdataframe

解决方案


您的代码有很多问题,但主要有两个:

  • 您不会存储、打印或将pd.DataFrame您创建的对象附加到列表中。
  • 您正在应用于nunique列标签,而不是数据框中的数据。

在这里,您可以nunique直接使用您的数据框,然后sort_values

np.random.seed(0)
df = pd.DataFrame(np.random.randint(0, 10, (5, 5)))

res = df.nunique()\
        .sort_values(ascending=False)\
        .rename('Count')\
        .to_frame()

print(res)

   Count
1      5
3      4
2      4
0      4
4      3

推荐阅读