Python 如何在groupby Pandas&;
在jupyter笔记本中执行以下任务: 在最拥挤的班级里有多少妇女 表中有以下列: 乘客幸免于难p班名性别年龄SibSp车票车费舱上船 任务中的“类”是表中的“类” 我无法理解如何解决这个问题 已统计每个班级的人数:Python 如何在groupby Pandas&;,python,pandas,Python,Pandas,在jupyter笔记本中执行以下任务: 在最拥挤的班级里有多少妇女 表中有以下列: 乘客幸免于难p班名性别年龄SibSp车票车费舱上船 任务中的“类”是表中的“类” 我无法理解如何解决这个问题 已统计每个班级的人数: data_by_class = data.groupby(['Pclass']) data_by_class['Pclass'].value_counts() 输出: Pclass Pclass 1 1 216 2 2 1
data_by_class = data.groupby(['Pclass'])
data_by_class['Pclass'].value_counts()
输出:
Pclass Pclass
1 1 216
2 2 184
3 3 491
Name: Pclass, dtype: int64
我可以得到最大值:
data\u by\u class['Pclass'].value\u counts().max()
输出:
Pclass Pclass
1 1 216
2 2 184
3 3 491
Name: Pclass, dtype: int64
491
如何将count连接到类?使用SQL很容易,但不知道如何使用Pandas。
如果有人能在开始时帮助解决此任务,我们将不胜感激。示例:
data = pd.DataFrame({
'Pclass':[1,2,1,2,2,1],
'Sex':['male'] + ['female'] * 5
})
首先是按Sex
列进行必要的分组,并将带有多索引的转换系列添加到3列数据框中:
data_by_class = data.groupby('Sex')['Pclass'].value_counts().reset_index(name='count')
print (data_by_class)
Sex Pclass count
0 female 2 3
1 female 1 2
2 male 1 1
然后,对于每组的最大值,使用:
最后,如果希望标量输出,请将列转换为索引:
df = df.set_index('Sex')
print (df)
Pclass count
Sex
female 2 3
male 1 1
因此,可以通过以下方式按标签选择:
print (df.loc['female', 'count'])
3
print (df.loc['female', 'Pclass'])
2