5. Pandas分组聚合与透视表的创建

第1关:Pandas分组聚合

任务:使用Pandas加载drinks.csv文件中的数据,根据数据信息求每个大洲红酒消耗量的最大值与最小值的差以及啤酒消耗量的和。

import pandas as pd
import numpy as np

# 返回最大值与最小值的和
def sub(df):
    ########## Begin #########
    return df.max() - df.min()
    ########## End #########

# 得到目标DataFrame
def main():
    ########## Begin #########
    data=pd.read_csv('./step1/drinks.csv')
    df=pd.DataFrame(data)    
    #df.groupby("continent").agg(sub)
    mapping = {"wine_servings":sub,"beer_servings":np.sum}
    result=df.groupby("continent").agg(mapping)
    ########## End #########
    return result

第2关:Pandas创建透视表和交叉表

任务:使用Pandas加载tip.csv文件中的数据集,分别用透视表和交叉表统计顾客在每种用餐时间、每个星期下的小费总体情况。

#-*- coding: utf-8 -*-
import pandas as pd

#创建透视表
def create_pivottalbe(data):
    ########## Begin ##########
    return data.pivot_table(values=["tip"],index=["day"],columns=["time"],aggfunc=sum,margins=True)
    ########## End ##########

#创建交叉表
def create_crosstab(data):
    ########## Begin ##########
    return pd.crosstab(values=data.tip,index=[data.day],columns=[data.time],aggfunc=sum ,margins=True)
    ########## End ##########

def main():
    #读取csv文件数据并赋值给data
    ########## Begin ##########
    data=pd.read_csv('./step2/tip.csv')
    ########## End ##########
    piv_result = create_pivottalbe(data)
    cro_result = create_crosstab(data)
    print("透视表:\n{}".format(piv_result))
    print("交叉表:\n{}".format(cro_result))
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值