有一个形如以下的学生成绩表,求男同学和女同学的平均成绩:
''' frame=pd.DataFrame({'姓名':['甲','乙','丙','丁','戊','己','庚'], '成绩':range(70,0,-10), '性别':['男','男','男','女','女','女','女'], 'd':[0,1,2,0,1,2,3] }) '''
其结构如下: d 姓名 性别 成绩 0 0 甲 男 70 1 1 乙 男 60 2 2 丙 男 50 3 0 丁 女 40 4 1 戊 女 30 5 2 己 女 20 6 3 庚 女 10
''' #转换成多级索引
frame2=frame.set_index(['性别','d'])
#以性别分组求平均
frame2.groupby('性别').mean() '''
结果如下
Out[60]:
成绩
性别
女 25
男 60
以上步骤基本会做了,但是………………
我的疑惑是,如果原始数据中没有 d 列,仅仅是一个最常见的学生成绩表:
''' frame=pd.DataFrame({'姓名':['甲','乙','丙','丁','戊','己','庚'], '成绩':range(70,0,-10), '性别':['男','男','男','女','女','女','女'], }) '''
这种情况,如何添加 d 列,如果成绩表数据较多,总不可能人工去数数添加吧?
初学,我的理解是没有多级索引 key,就没办法使用 groupby。
如何给没有多级索引 key 的原始数据,添加上去呢??