两个分类变量的描述性统计数据 (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
如果需要省略NaN
s):
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
我需要获取两个分类变量之间频率的均值和中值。例如:
标签字母编号
富 |一个 | 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
如果需要省略NaN
s):
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