两个分类变量的描述性统计数据 (pandas)

descriptive stats for two categorical variables (pandas)

我需要获取两个分类变量之间频率的均值和中值。例如:

标签字母编号
富 |一个 | 1个
富 |乙 | 2个
富 |丙 | 4个
栏|一个 | 2个
栏|格 | 3个
栏|否 | 1个
栏|磷 | 2个
中东欧 |乙 | 1个
中东欧 |乙 | 2个
中东欧 |丙 | 4个
中东欧 | D | 5

例如,每个标签的平均字母数和中位数是多少。这里有三个可能标签中的 11 个案例 (M=3.667),中位数为 4(3 foo、4 bar、4 cee)。我如何在 pandas 中进行计算?是否可以使用 groupby 语句执行此操作?我的数据集比这大得多。

需要value_counts for one column or groupby + size (or count如果需要省略NaNs):

a = df['Label'].value_counts()
print (a)
Cee    4
Bar    4
Foo    3
Name: Label, dtype: int64

#alternative
#a = df.groupby('Label').size()
print (a.mean())
3.6666666666666665

print (a.median())
4.0

a = df.groupby(['Label','Letter']).size()
print (a)
Label  Letter
Bar    A         1
       G         1
       N         1
       P         1
Cee    B         2
       C         1
       D         1
Foo    A         1
       B         1
       C         1
dtype: int64

print (a.mean())
1.1

print (a.median())
1.0