Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从sum中排除列中的单元格_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何从sum中排除列中的单元格

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

我有下面的数据集,我想计算每个学校“笔记”的总和,学校“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')
我得到了这个异常:异常:无法处理非唯一的多索引!你提供的数据对我有用。但另一种方法请参见我的编辑。