这是我的代码:
for column in list(data.columns):
pd.DataFrame(columns=column, data=data.columns.nunique()).sort_values()
这行不通......
是定义函数还是使用for循环,如何使检查每一列的唯一值编号变得简单?
答案 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