我想按某些字段将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_counts
的dropna=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/