杨__羊羊
在这里,我为Python添加了一个新主题,并作为将其加载到数据帧中的指令提供。解决方案是在groupby上使用agg()方法的组合,在字典中提供聚合,然后根据您的ugrad要求使用自定义聚合函数:def my_custom_ugrad_aggregator(arr): return sum(arr == 'ugrad')dict = {'name': {0: 'Math', 1: 'History', 2: 'Adv Math', 3: 'Python'}, 'year': {0: 2016, 1: 2016, 2: 2017, 3: 2017}, 'credits': {0: 4, 1: 3, 2: 3, 3: 4}, 'semester': {0: 'Fall', 1: 'Spring', 2: 'Fall', 3: 'Spring'}, 'ugrad/grad': {0: 'ugrad', 1: 'ugrad', 2: 'grad', 3: 'ugrad'}, 'enrolled': {0: 62, 1: 15, 2: 8, 3: 8}, 'ID': {0: 1, 1: 2, 2: 3, 3: 4}}df =pd.DataFrame(dict) ID credits enrolled name semester ugrad/grad year0 1 4 62 Math Fall ugrad 20161 2 3 15 History Spring ugrad 20162 3 3 8 Adv Math Fall grad 20173 4 4 8 Python Spring ugrad 2017print df.groupby(['year','semester']).agg({'name':['count'],'enrolled':['sum'],'ugrad/grad':my_custom_ugrad_aggregator})给出: name ugrad/grad enrolled count my_custom_ugrad_aggregator sumyear semester 2016 Fall 1 1 62 Spring 1 1 152017 Fall 1 0 8 Spring 1 1 8