天天看点

python groupby用法实战

背景

已知某航空公司拥有的飞机数量如下图示,现要求在EXCEL表中,计算出各个机型每种座位布局的飞机数量在该种机型飞机总量中所占的比重。

python groupby用法实战

代码实现

#导入原始数据表
import pandas as pd
dt=pd.read_excel('xl.xlsx')
#定义函数per,即子数占总数的比
def per(arr):
    return arr/arr.sum()
#利用GROUPBY对机型进行分组,再利用per()计算各组内数据占该组数据之和的比重,并把所得结果添加到dt数据框的后一列,保存为lx.xlsx
dt[u'占比']=dt.groupby(u'机型').transform(per)
dt.to_excel('lx.xlsx',index=False)           

复制