超市营业额数据分析


数据:链接:https://pan.baidu.com/s/155xelD0h2OmgOBiXFcmnuw?pwd=kbkp
提取码:kbkp

1:查看单日交易额最小的3天的交易数据,并查看这3天是周几

1.1:导入模块

import pandas as pd

1.2:数据处理

读取表格数据

df = pd.read_excel("超市营业额.xlsx")

根据日期分类汇总,按交易额求和汇总并取最小的前3位和交易额的列名

df1 = df.groupby(by="日期", as_index=False).agg({"交易额": "sum"}).nsmallest(3,['交易额'])

1.3:输出结果

print(pd.to_datetime(df1.日期).dt.day_name())
24      Monday
20    Thursday
9       Sunday
Name: 日期, dtype: object

完整代码

import pandas as pd

df = pd.read_excel("超市营业额.xlsx")
df1 = df.groupby(by="日期", as_index=False).agg({"交易额": "sum"}).nsmallest(3,['交易额'])

print(pd.to_datetime(df1.日期).dt.day_name())

2:把所有员工的工号前面增加一位数字,增加的数字和原工号最后一位相同,把修改后的数据写入新的文件“超市营业额2_修改工号.xlsx”

2.1:导入模块

import pandas as pd

2.2:数据处理

读取表格数据

df = pd.read_excel("超市营业额.xlsx")

把所有员工的工号前面增加一位数字

df['工号']=df['工号'].map(lambda s: str(s)[-1] + str(s))

把修改后的数据写入新的文件“超市营业额2_修改工号.xlsx”

df1 = pd.read_excel("超市营业额2_修改工号.xlsx")

查看是否写入

df1 = pd.read_excel("超市营业额2_修改工号.xlsx")
print(df1)
工号  姓名          日期           时段     交易额    柜台
0    11001  张三  2019-03-01   900-1400  1664.0   化妆品
1    21002  李四  2019-03-01  1400-2100   954.0   化妆品
2    31003  王五  2019-03-01   900-1400  1407.0    食品
3    41004  赵六  2019-03-01  1400-2100  1320.0    食品
4    51005  周七  2019-03-01   900-1400   994.0   日用品
..     ...  ..         ...          ...     ...   ...
244  21002  李四  2019-03-31  1400-2100   859.0  蔬菜水果
245  41004  赵六  2019-03-31   900-1400  1668.0   日用品
246  41004  赵六  2019-03-31  1400-2100  1722.0   日用品
247  31003  王五  2019-03-31   900-1400  1274.0    食品
248  61006  钱八  2019-03-31  1400-2100   812.0    食品

完整代码

import pandas as pd
 
df = pd.read_excel("超市营业额.xlsx")

df['工号']=df['工号'].map(lambda s: str(s)[-1] + str(s))

df.to_excel('超市营业额2_修改工号.xlsx',index = False)

df1 = pd.read_excel("超市营业额2_修改工号.xlsx")
print(df1)

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

3.1:导入模块

import pandas as pd

3.2:数据处理

读取表格数据

df = pd.read_excel("超市营业额.xlsx")

设置输出格式

writer = pd.ExcelWriter('各员工数据.xlsx')

读取姓名并去重

names = set(df['姓名'])

每个员工的数据占一个 worksheet,并以员工姓名作为worksheet 的标题

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

在这里插入图片描述

完整代码

import pandas as pd

df = pd.read_excel("超市营业额.xlsx")
writer = pd.ExcelWriter('各员工数据.xlsx')


names = set(df['姓名'])

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

4:利用Pandas绘制折线图展示一个月内各柜台营业额每天的变化趋势

4.1:导入模块

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

4.2:数据处理

读取表格数据并筛选列名为’日期’, ‘柜台’, ‘交易额’,的列

df = pd.read_excel('超市营业额.xlsx',usecols=['日期', '柜台', '交易额'])

根据日期和柜台分类汇总,对交易额进行求和

df = df.groupby(by = ['日期','柜台'], as_index = False).agg({"交易额": "sum"})

以日期横轴,柜台为纵轴,交易额为变化曲线画图

df = df.pivot(index = '日期', columns = '柜台', values = '交易额')
df.plot()

在这里插入图片描述

完整代码

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

df = pd.read_excel('超市营业额.xlsx',usecols=['日期', '柜台', '交易额'])

df = df.groupby(by = ['日期','柜台'], as_index = False).agg({"交易额": "sum"})
df = df.pivot(index = '日期', columns = '柜台', values = '交易额')

df.plot()

5:利用Pandas绘制饼状图展示该月各柜台营业额在交易总额中的占比

5.1:导入模块

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

5.2:数据处理

设置使用中文字体(font)为黑体(SimHei)

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

读取表格数据并筛选列名为 ‘柜台’, ‘交易额’,的列

df = pd.read_excel('超市营业额.xlsx',usecols=['柜台', '交易额'])

根据柜台分类汇总,对交易额进行求和

df = df.groupby(by = ['柜台'], as_index = False).agg({"交易额": "sum"})

展示该月各柜台营业额在交易总额中的占比

df = df.plot(x = '柜台', y = '交易额', kind = 'pie', labels = df.柜台.values)
pt.legend()
pt.show()

在这里插入图片描述

完整代码

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

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

df = pd.read_excel('超市营业额.xlsx',usecols=['柜台', '交易额'])
df = df.groupby(by = ['柜台'], as_index = False).agg({"交易额": "sum"})

df = df.plot(x = '柜台', y = '交易额', kind = 'pie', labels = df.柜台.values)
pt.legend()
pt.show()

6:绘制柱状图展示张三在不同柜台的交易总额

6.1:导入模块

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

6.2:数据处理

设置使用中文字体(font)为黑体(SimHei)

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

读取表格数据并筛选列名为’姓名’, ‘柜台’, ‘交易额’,的列

df = pd.read_excel('超市营业额.xlsx',usecols=['姓名','柜台', '交易额'])

筛选姓名为张三的信息

df = df[df.姓名 == '张三']

根据柜台分类汇总,对交易额进行求和

df = df.groupby(by = ['柜台'], as_index = False).agg({"交易额": "sum"})

绘制柱状图展示张三在不同柜台的交易总额

df = df.plot(x = '柜台', y = '交易额', kind = 'bar')
pt.legend()
pt.show()

在这里插入图片描述

完整代码

import pandas as pd
import matplotlib.pyplot as pt
import matplotlib.font_manager as fm

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

df = pd.read_excel('超市营业额.xlsx',usecols=['姓名','柜台', '交易额'])
df = df[df.姓名 == '张三']
df = df.groupby(by = ['柜台'], as_index = False).agg({"交易额": "sum"})

df = df.plot(x = '柜台', y = '交易额', kind = 'bar')
pt.legend()
pt.show()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值