pandas datafram中所有列的基数/非重复计数

2024-04-23 15:04:38 发布

您现在位置:Python中文网/ 问答频道 /正文

当数据帧.描述()对于一些摘要描述性统计非常有用—特别是四分位数和范围值—它显然没有基数计数选项?在

通过提供列列表并将默认值设为“all”,有哪些方法可以用来获取数据帧中的基数计数?在


Tags: 数据方法列表选项all计数基数描述性
2条回答

您可以计算数据帧系列的不同值。这将为您提供列名和基数。例如,对于数据帧:

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

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

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))

相关问题 更多 >