Python教材(数据分析、数据挖掘与可视化)——第7章课后习题

1."超市营业额2.xlsx"查看单日交易总额最小的3天的交易数据,并查看这3天是周几。

2."超市营业额2.xlsx"把所有员工的工号前面增加一位数字,增加的数字和原工号最后一位相同,把修改后的数据写入新文件“超市营业额2_修改工号.xlsx“。例如,工号1001变为1101,1003变为31003

3.把每个员工的交易额数据邪入文"各员工数据,xlsx",每个员工的数据占一个worksheet,结构和"超市营业额2.xlsx"一样,并以员工姓名作为worksheet的标题

4.查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制折线图展示一个月内柜台营业额每天的变化趋势.

5.查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制饼状图展示该月各柜台营业额在交易总额中的占比.

6.查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制柱状图展示张三在不同柜台的交易总额

第一题

import pandas as pd
'''
"超市营业额2.xlsx"查看单日交易总额最小的3天的交易数据,并查看这3天是周几。
'''
df = pd.read_excel(r'超市营业额2.xlsx',usecols=['日期','交易额'])
df1 = df.groupby(by='日期',as_index=False).agg({'交易额':'sum'}).nsmallest(3,'交易额')
print(pd.to_datetime(df1.日期).dt.day_name())

在这里插入图片描述

第二题

import pandas as pd
from copy import deepcopy
'''
"超市营业额2.xlsx"把所有员工的工号前面增加一位数字,增加的数字和原工号最后一位相同,把修改后的数据写
入新文件“超市营业额2_修改工号.xlsx“。例如,工号1001变为1101,1003变为31003
'''
df = pd.read_excel('超市营业额2.xlsx')

df1 = deepcopy(df)
df1['工号'] = df['工号'].map(lambda s: str(s)[-1]+str(s))
df1.to_excel('超市营业额2修改工号.xlsx',index=False)

在这里插入图片描述

第三题

import pandas as pd
'''
把每个员工的交易额数据邪入文"各员工数据,xlsx",每个员工的数据占一个worksheet,结构
和"超市营业额2.xlsx"一样,并以员工姓名作为worksheet的标题
'''

df = pd.read_excel('超市营业额2.xlsx')
writer = pd.ExcelWriter('各员工数据.xlsx')
names = set(df['姓名'].values)

for name in names:
    dff = df[df.姓名==name]
    dff.to_excel(writer,sheet_name=name,index=False)
writer.save()

在这里插入图片描述

第四题

import pandas as pd
import matplotlib.pyplot as plt
'''
查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制折线图展示一个月内柜台营业额每天的变化趋势.
'''
df = pd.read_excel('超市营业额2.xlsx')  #读取数据
df_group = df.groupby(by='日期',as_index=False).agg({'交易额':'sum'})

plt.plot(range(1,32),df_group.交易额)
plt.xlabel('日期(天)',fontproperties='simhei')
plt.ylabel('交易额(元)',fontproperties='simhei')
plt.title('折线图',fontproperties='simhei')

plt.show()

在这里插入图片描述

第五题

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
'''
查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制饼状图展示该月各柜台营业额在交易总额中的占比.
'''

plt.rcParams['font.sans-serif'] = ['simhei']

df = pd.read_excel('超市营业额2.xlsx')  #读取数据
df_group = df.groupby(by='柜台',as_index=False).agg({'交易额':'sum'})
print(df_group)

plt.pie(df_group.交易额,labels=df_group.柜台,autopct='%1.1f%%')
font = fm.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.ttf')
plt.legend(prop=font)

plt.show()

在这里插入图片描述

第六题

import pandas as pd
import matplotlib.pyplot as plt
'''
查阅资料,根据本章用到的文件“超市营业额2.xlsx”,绘制柱状图展示张三在不同柜台的交易总额
'''
plt.rcParams['font.sans-serif'] = ['simhei']

df = pd.read_excel('超市营业额2.xlsx')  #读取数据
df_group = df[df.姓名=='张三'].groupby(by='柜台',as_index=False).agg({'交易额':'sum'})
plt.bar(df_group.柜台,df_group.交易额)
plt.xlabel('不同柜台')
plt.ylabel('交易总额')
plt.title('张三在不同柜台的交易总额')

plt.show()

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值