计算每列的不同值,返回数据框,并对值进行排序

时间:2018-11-17 22:20:17

标签: python pandas dataframe

这是我的代码:

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

这行不通......

是定义函数还是使用for循环,如何使检查每一列的唯一值编号变得简单?

1 个答案:

答案 0 :(得分:2)

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

  • 您不会存储,打印或创建自己创建的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