Python 有没有更简洁的方法来计算熊猫群中的行数?
这是一个数据表 为了以“Age”==“young”为条件按类分组计算行数,我使用了这段代码Python 有没有更简洁的方法来计算熊猫群中的行数?,python,pandas,Python,Pandas,这是一个数据表 为了以“Age”==“young”为条件按类分组计算行数,我使用了这段代码 df.loc[(df['Age']=='young') & (df['Class'] == 'Yes'),'Class'].count() df.loc[(df['Age']=='young') & (df['Class'] == 'No'),'Class'].count() 输出 2 3 是否有一种简洁的方法来获取行数(2和3)?您可以使用: print(df.groupby('C
df.loc[(df['Age']=='young') & (df['Class'] == 'Yes'),'Class'].count()
df.loc[(df['Age']=='young') & (df['Class'] == 'No'),'Class'].count()
输出
2
3
是否有一种简洁的方法来获取行数(2和3)?您可以使用:
print(df.groupby('Class').size())
如果您只想要'young'
:
print(df[df['Age'].eq('young')].groupby('Class').size())
您可以使用:
print(df.groupby('Class').size())
如果您只想要'young'
:
print(df[df['Age'].eq('young')].groupby('Class').size())
您还可以尝试
df.groupby(['Age','Class']).count()
。您将通过这些值的组合(不仅是年龄==Young)获得所有计数,而且您可以稍后将其过滤掉。您还可以尝试df.groupby(['Age','Class']).count()
。您将通过这些值的组合(不仅是年龄==年轻)获得所有计数,但稍后您可以将其过滤掉。这里您可以为年龄类别的每个类别计数:
df.groupby(['Age','Class'])['Class'].count()
在这里,您可以计算每个年龄类别的人数:
df.groupby(['Age','Class'])['Class'].count()
我看到已经提供了足够的答案,但是将示例数据集放在这里供后代创建和使用数据集进行测试 模拟数据集: 数据帧:
>>> df
Age Class Credit_rating Has_job Own_house
0 young No fair False False
1 young No Good False False
2 young Yes Good True False
3 young Yes fair True True
4 young No fair False False
.size()
将是获得作业的最简单方法,因为它返回系列
我看到已经提供了足够的答案,但是将示例数据集放在这里供后代创建和使用数据集进行测试 模拟数据集: 数据帧:
>>> df
Age Class Credit_rating Has_job Own_house
0 young No fair False False
1 young No Good False False
2 young Yes Good True False
3 young Yes fair True True
4 young No fair False False
.size()
将是获得作业的最简单方法,因为它返回系列
最好是添加代码或复制/粘贴数据示例,而不是屏幕截图。最好是添加代码或复制/粘贴数据示例,而不是屏幕截图。你是说
print(df[df['Age']='young'].groupby('Class').size())
?@U9 Forward,nice one+1,这是最简单的方法。size
你是指print(df[df['Age']=='young'].groupby('Class').size())
?@U9 Forward,nice one+1,这是使用.size
最简单的方法。虽然此代码可能会回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。虽然此代码可能会回答问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。关于第二个示例,您还可以执行df.groupby(['Class'],as_index=False)。size()
关于第二个示例,您还可以执行df.groupby(['Class'],as_index=False)。size()
>>> df.groupby(['Class'], as_index=False).size()
Class
No 3
Yes 2
dtype: int64