Skip to main content
 首页 » 编程设计

python之如何计算 python pandas 中的行而不是值

2025年05月04日24lexus

我想按某些字段对 DataFrame 进行分组

student_data.groupby(['passed']) 

然后计算每组内的行数。

我知道如何计算像这样的值

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

或

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

但这会 exclude empties by default .我想对所有行进行分组?

我发现我可以用

计算整个 DataFrame 中的行数
len(student_data.index) 

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

请您参考如下方法:

你需要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