Python dataframe中所有列的基数/不同计数

Python dataframe中所有列的基数/不同计数,python,pandas,Python,Pandas,虽然dataframe.descripe()对于某些摘要描述性统计数据(特别是四分位数和范围值)很有用,但它显然没有基数计数选项 通过提供列列表并将默认值设置为“all”来获得数据帧中的基数计数有哪些选项或方法?您可以对数据帧系列的不同值进行计数。这将为您提供列名和基数。例如,对于数据帧: names = pd.Categorical(['Tomba', 'Monica', 'Monica', 'Nancy', 'Neil', 'Chris']) courses = pd.Categorical

虽然dataframe.descripe()对于某些摘要描述性统计数据(特别是四分位数和范围值)很有用,但它显然没有基数计数选项


通过提供列列表并将默认值设置为“all”来获得数据帧中的基数计数有哪些选项或方法?您可以对数据帧系列的不同值进行计数。这将为您提供列名和基数。例如,对于数据帧:

names = pd.Categorical(['Tomba', 'Monica', 'Monica', 'Nancy', 'Neil', 'Chris'])
courses = pd.Categorical(['Physics', 'Geometry', 'Physics', 'Biology', 'Algebra', 'Algebra'])

df = pd.DataFrame({
    'Name' : names, 
    'Course': courses
})


Out[72]: df
     Course    Name
0   Physics   Tomba
1  Geometry  Monica
2   Physics  Monica
3   Biology   Nancy
4   Algebra    Neil
5   Algebra   Chris

df.apply(pd.Series.nunique)

Course    4
Name      5
dtype: int64

或者,您可以使用。这里有一个例子

import pandas as pd

names = pd.Categorical(['Tomba', 'Monica', 'Monica', 'Nancy', 'Neil', 'Chris'])
courses = pd.Categorical(['Physics', 'Geometry', 'Physics', 'Biology', 'Algebra', 'Algebra'])
df = pd.DataFrame({'Name': names, 'Course': courses})

for col in df:
    cardinality = len(pd.Index(df[col]).value_counts())
    print(df[col].name + ": " + str(cardinality))

你的意思是,你在做一些类似于<代码> DF的事情。应用(“nIn独有”)< /Cord>?@ jon Currices非常有用-没有考虑<代码>应用< /COD>跨列轴。请回答
df.nunique()
就可以了,是在
pd.\uu版本\uuu
0.20.0
@JohnGalt,或者我想甚至可以扩展到:
df.agg(['min'、'max'、'sum'、'count'、'nunique'))
等等……是的,这是@JonClements在最初提出问题时提供的答案——但考虑到他拒绝创建答案,你可以得到答案。无论python的禅宗怎么说,拥有更多选项总是好的