• 超市营业额数据分析



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

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

    1.1:导入模块

    import pandas as pd
    
    • 1

    1.2:数据处理

    读取表格数据

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

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

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

    1.3:输出结果

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

    完整代码

    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())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    2.1:导入模块

    import pandas as pd
    
    • 1

    2.2:数据处理

    读取表格数据

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

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

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

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

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

    查看是否写入

    df1 = pd.read_excel("超市营业额2_修改工号.xlsx")
    print(df1)
    
    • 1
    • 2
    工号  姓名          日期           时段     交易额    柜台
    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    食品
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    完整代码

    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)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    3.1:导入模块

    import pandas as pd
    
    • 1

    3.2:数据处理

    读取表格数据

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

    设置输出格式

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

    读取姓名并去重

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

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

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

    在这里插入图片描述

    完整代码

    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()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

    4.1:导入模块

    import pandas as pd
    import matplotlib.pyplot as pt
    import matplotlib.font_manager as fm
    
    • 1
    • 2
    • 3

    4.2:数据处理

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

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

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

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

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

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

    在这里插入图片描述

    完整代码

    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    5.1:导入模块

    import pandas as pd
    import matplotlib.pyplot as pt
    import matplotlib.font_manager as fm
    
    • 1
    • 2
    • 3

    5.2:数据处理

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

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

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

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

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

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

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

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

    在这里插入图片描述

    完整代码

    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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    6.1:导入模块

    import pandas as pd
    import matplotlib.pyplot as pt
    import matplotlib.font_manager as fm
    
    • 1
    • 2
    • 3

    6.2:数据处理

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

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

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

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

    筛选姓名为张三的信息

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

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

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

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

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

    在这里插入图片描述

    完整代码

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
    2022第二届中国ESG与可持续发展国际峰会将于11月17日-18日在上海举行
    pytorch使用GPU加速--windows11,GTX1650Super
    Vue组件与Vue-cli脚手架安装
    Jmeter——循环控制器中实现Counter计数器的次数重置
    一个简单的HTML篮球网页【学生网页设计作业源码】
    JavaWeb篇_02——服务器简介及Tomcat服务器简介
    k8s-pod管理 3
    Mysql5.7 + 查询并解析json数据方法
    Nmap网络扫描
  • 原文地址:https://blog.csdn.net/qq_52331221/article/details/127555540