Python 如何从sum中排除列中的单元格
我有下面的数据集,我想计算每个学校“笔记”的总和,学校“B”除外,我想等于零或缺失Python 如何从sum中排除列中的单元格,python,pandas,dataframe,Python,Pandas,Dataframe,我有下面的数据集,我想计算每个学校“笔记”的总和,学校“B”除外,我想等于零或缺失 student school notes nbr_of_student_per_school 1 A 12 45 1 A 13 45 2 A 10 45 3 B
student school notes nbr_of_student_per_school
1 A 12 45
1 A 13 45
2 A 10 45
3 B 13 -
4 C 16 46
5 A 10 45
6 C 20 46
7 C 10 46
8 B 11 -
df.groupby(['Country'])['notes'].sum()
试试这个:
df.query('school != "B"').groupby('school')['notes'].sum()
因此,您只选择数据帧的子集,其中学校不是B
编辑: 另一种方法是:评论:
# calculate mean
df['new_col'] = df.groupby('school')['notes'].transform('sum')
# now set B school sum to np.nan
df.loc[df['school'] == 'B', 'new_col'] = np.nan
在school B等于0的情况下执行临时数据帧,然后在该临时数据帧上执行groupby,这是一个解决方案吗?我的数据库比该临时数据帧大,并且需要每天更新,因此在单个数据库中进行更改比在两个数据库中进行更改要好。谢谢好的,因此这就可以了:
df.loc[df['school']!='B',:].groupby(['Country'])['notes'].sum()
它用a、C和D以及总和生成一个新的数据框,我该怎么做,如果我想把结果放在同一个数据框中,它用a、C和D以及总和生成一个新的数据框,我该怎么做,如果我想将结果放在相同的数据集中:df['new_col']=df.query('school!=“B”).groupby('school')['notes'].transform('sum')
我得到了这个异常:异常:无法处理非唯一的多索引!你提供的数据对我有用。但另一种方法请参见我的编辑。