作者:lianghc
在逛CSDN论坛时遇到这样一个问题:
下列代码中srcdf和desdf都是Pandas的DataFrame对象,需要将srcdf转换为desdf,也就是根据列中的值拓展新的列,关系数据库报表中常见的需求,请问用DataFrame要如何实现?
print(srcdf)
姓名 性别 科目 分数
编号
0 刘玄德 男 语文 98
1 刘玄德 男 数学 60
2 刘玄德 男 体育 50
3 关云长 男 语文 60
4 关云长 男 数学 60
5 关云长 男 体育 100
[6 rows x 4 columns]
print(desdf)
姓名 性别 语文 数学 体育 平均分
编号
0 刘玄德 男 98 60 50 66.666667
1 关云长 男 60 60 100 73.333333
[2 rows x 6 columns]
经过分析,发现实际是将那么分组,将科目展开,即《利用pandas进行数据分析》第七章 数据转换下的将‘长格式’转换为‘宽格式’ 问题。论坛里已经有一种解决办法了:
In [148]: from pandas import Series,DataFrame
...: a=[['刘玄德','男','语文',98.],['刘玄德','男','体育',60.],['关云长','男','数学',60.],[&