我想按某些字段将DataFrame分组

student_data.groupby(['passed'])


然后计算每个组内的行数。

我知道如何计算像

student_data.groupby(['passed'])['passed'].count()


要么

student_data.groupby(['passed']).agg({'passed': 'count'})


但这会exclude empties by default。我想计算组中的所有行吗?

我发现我可以用

len(student_data.index)


但在index对象或其他内容中找不到任何GroupBy字段。

最佳答案

您需要带参数value_countsdropna=False

import pandas as pd
import numpy as np

student_data = pd.DataFrame({'passed':[1,1,2,2,2,np.nan,np.nan]})
print(student_data)
   passed
0     1.0
1     1.0
2     2.0
3     2.0
4     2.0
5     NaN
6     NaN

print (student_data['passed'].value_counts(dropna=False))
 2.0    3
 1.0    2
NaN     2
Name: passed, dtype: int64

关于python - 如何在python Pandas 中计算行而不是值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38292340/

10-12 18:55