如何用pandas将数据进行分组转换

我有这样的一组数据
[(1,1,5),(1,2,7),(2,1,8),(2,2,9)]
tuple里面的三个数据分别代表学生idstudent_id,老师teacher_id,分数score
我要得到的数据结果是:

{
    1:[
        'avg_score':6,
        'detail':
            {1:5,
             2:7}
       ],
    2: [
        'avg_score':8.5,
        'detail':
            {1:8,
             2:9}
       ]
}    

也就是需要根据学生id去分组,key是学生ID,值是平均分和详细的每个老师给的分数
我知道可以采用groupby分组,然后得到平均分,但是怎么得到这种数据格式呢?用pandas是否是好的选择?求大神指点迷津,谢谢

阅读 4k
1 个回答

pandas是个好的选择,但还是看你的实际情况:

  1. 假如你就这一个地方要用,而且数据量不大,那么自己写点小程序就OK了

  2. 假如你多个地方要做统计,数据量一般,内存完全hold住,那么pandas是上佳选择

  3. 假如你数据量较大,内存也hold不住,那用mongodb比较适合

  4. 假如你数据量相当大,单机或者两三台机器都hold不住,那就hdfs + spark吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题