虽然dataframe.describe()对某些摘要描述性统计有用 - 特别是四分位数和范围值 - 但它显然没有基数计数选项?
有哪些选项 - 或者方法 - 用于获取数据框中的基数计数 - 可能通过提供列列表并默认为" all" ?
答案 0 :(得分:4)
您可以计算数据集系列的不同值。这将为您提供列名和基数。例如,对于数据框:
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
答案 1 :(得分:1)
或者,您可以使用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))