python 结合excel透视图进行数据分析核对
数据运维
·
1.案例数据
| 销售日期 | 品种 | 渠道 | 地区 | 销售额(元) | 订单量 | 毛利率 |
| 2024-1-5 | 水煮鱼 | 堂食 | 北京 | 1,280 | 16 | 65% |
| 2024-1-5 | 辣子鸡 | 外卖 | 上海 | 920 | 23 | 60% |
| 2024-1-6 | 麻婆豆腐 | 堂食 | 广州 | 650 | 13 | 70% |
| 2024-1-6 | 回锅肉 | 外卖 | 成都 | 780 | 15 | 58% |
| 2024-1-7 | 宫保鸡丁 | 堂食 | 深圳 | 1,150 | 19 | 62% |
| 2024-1-7 | 酸菜鱼 | 外卖 | 杭州 | 1,430 | 26 | 55% |
| 2024-1-8 | 夫妻肺片 | 堂食 | 北京 | 890 | 11 | 68% |
| 2024-1-8 | 毛血旺 | 外卖 | 上海 | 1,210 | 22 | 50% |
| 2024-1-9 | 鱼香肉丝 | 堂食 | 重庆 | 1,050 | 14 | 63% |
| 2024-1-9 | 干锅牛蛙 | 外卖 | 南京 | 1,370 | 28 | 52% |
| 2024-1-10 | 口水鸡 | 堂食 | 西安 | 720 | 9 | 67% |
| 2024-1-10 | 蒜泥白肉 | 外卖 | 武汉 | 950 | 18 | 60% |
| 2024-1-11 | 红烧肉 | 堂食 | 北京 | 1,640 | 21 | 64% |
| 2024-1-11 | 糖醋排骨 | 外卖 | 上海 | 1,080 | 20 | 57% |
| 2024-1-12 | 清炒时蔬 | 堂食 | 广州 | 430 | 7 | 75% |
| 2024-1-12 | 凉拌黄瓜 | 外卖 | 成都 | 510 | 12 | 72% |
| 2024-1-13 | 番茄蛋汤 | 堂食 | 深圳 | 320 | 5 | 80% |
| 2024-1-13 | 紫菜蛋花汤 | 外卖 | 杭州 | 290 | 8 | 78% |
| 2024-1-14 | 米饭 | 堂食 | 北京 | 240 | 30 | 85% |
| 2024-1-14 | 馒头 | 外卖 | 上海 | 180 | 15 | 82% |
| 2024-1-15 | 水煮鱼 | 堂食 | 重庆 | 1,360 | 17 | 65% |
| 2024-1-15 | 辣子鸡 | 外卖 | 南京 | 1,040 | 25 | 60% |
| 2024-1-16 | 麻婆豆腐 | 堂食 | 西安 | 590 | 10 | 70% |
| 2024-1-16 | 回锅肉 | 外卖 | 武汉 | 870 | 16 | 58% |
| 2024-1-17 | 宫保鸡丁 | 堂食 | 北京 | 1,230 | 20 | 62% |
| 2024-1-17 | 酸菜鱼 | 外卖 | 上海 | 1,510 | 29 | 55% |
| 2024-1-18 | 夫妻肺片 | 堂食 | 广州 | 970 | 12 | 68% |
| 2024-1-18 | 毛血旺 | 外卖 | 成都 | 1,320 | 24 | 50% |
| 2024-1-19 | 鱼香肉丝 | 堂食 | 深圳 | 1,110 | 15 | 63% |
| 2024-1-19 | 干锅牛蛙 | 外卖 | 杭州 | 1,450 | 30 | 52% |
2.传统的excel 透视图
| 根据地区计算销售额度 | ||
| 行标签 | 求和项:销售额(元) | 求和项:订单量 |
| 北京 | 5280 | 98 |
| 成都 | 2610 | 51 |
| 广州 | 2050 | 32 |
| 杭州 | 3170 | 64 |
| 南京 | 2410 | 53 |
| 上海 | 4900 | 109 |
| 深圳 | 2580 | 39 |
| 武汉 | 1820 | 34 |
| 西安 | 1310 | 19 |
| 重庆 | 2410 | 31 |
| 总计 | 28540 | 530 |
3.python的库
pandas 统计分析
这边测试方便 数据暂时放在数组里进行相关的统计
代码部分
import pandas as pd
# 初始化数据
data = [
["2024-1-5", "水煮鱼", "堂食", "北京", 1280, 16, 0.65],
["2024-1-5", "辣子鸡", "外卖", "上海", 920, 23, 0.60],
["2024-1-6", "麻婆豆腐", "堂食", "广州", 650, 13, 0.70],
["2024-1-6", "回锅肉", "外卖", "成都", 780, 15, 0.58],
["2024-1-7", "宫保鸡丁", "堂食", "深圳", 1150, 19, 0.62],
["2024-1-7", "酸菜鱼", "外卖", "杭州", 1430, 26, 0.55],
["2024-1-8", "夫妻肺片", "堂食", "北京", 890, 11, 0.68],
["2024-1-8", "毛血旺", "外卖", "上海", 1210, 22, 0.50],
["2024-1-9", "鱼香肉丝", "堂食", "重庆", 1050, 14, 0.63],
["2024-1-9", "干锅牛蛙", "外卖", "南京", 1370, 28, 0.52],
["2024-1-10", "口水鸡", "堂食", "西安", 720, 9, 0.67],
["2024-1-10", "蒜泥白肉", "外卖", "武汉", 950, 18, 0.60],
["2024-1-11", "红烧肉", "堂食", "北京", 1640, 21, 0.64],
["2024-1-11", "糖醋排骨", "外卖", "上海", 1080, 20, 0.57],
["2024-1-12", "清炒时蔬", "堂食", "广州", 430, 7, 0.75],
["2024-1-12", "凉拌黄瓜", "外卖", "成都", 510, 12, 0.72],
["2024-1-13", "番茄蛋汤", "堂食", "深圳", 320, 5, 0.80],
["2024-1-13", "紫菜蛋花汤", "外卖", "杭州", 290, 8, 0.78],
["2024-1-14", "米饭", "堂食", "北京", 240, 30, 0.85],
["2024-1-14", "馒头", "外卖", "上海", 180, 15, 0.82],
["2024-1-15", "水煮鱼", "堂食", "重庆", 1360, 17, 0.65],
["2024-1-15", "辣子鸡", "外卖", "南京", 1040, 25, 0.60],
["2024-1-16", "麻婆豆腐", "堂食", "西安", 590, 10, 0.70],
["2024-1-16", "回锅肉", "外卖", "武汉", 870, 16, 0.58],
["2024-1-17", "宫保鸡丁", "堂食", "北京", 1230, 20, 0.62],
["2024-1-17", "酸菜鱼", "外卖", "上海", 1510, 29, 0.55],
["2024-1-18", "夫妻肺片", "堂食", "广州", 970, 12, 0.68],
["2024-1-18", "毛血旺", "外卖", "成都", 1320, 24, 0.50],
["2024-1-19", "鱼香肉丝", "堂食", "深圳", 1110, 15, 0.63],
["2024-1-19", "干锅牛蛙", "外卖", "杭州", 1450, 30, 0.52]
]
# 创建DataFrame
columns = ["销售日期", "品种", "渠道", "地区", "销售额(元)", "订单量", "毛利率"]
df = pd.DataFrame(data, columns=columns)
# 按地区统计销售额和订单量
pivot_table = pd.pivot_table(df,
index=['地区'],
values=['销售额(元)', '订单量'],
aggfunc={'销售额(元)': 'sum', '订单量': 'sum'})
# 重置索引使地区成为列
pivot_table = pivot_table.reset_index()
# 重命名列名
pivot_table.columns = ['地区', '总订单量', '总销售额(元)']
# 按总销售额降序排序
pivot_table = pivot_table.sort_values(by='总销售额(元)', ascending=False)
# 计算总计行
total_row = pd.DataFrame({
'地区': ['总计'],
'总订单量': [pivot_table['总订单量'].sum()],
'总销售额(元)': [pivot_table['总销售额(元)'].sum()]
})
# 将总计行添加到透视表
pivot_table_with_total = pd.concat([pivot_table, total_row], ignore_index=True)
# 打印结果
print("按地区统计的销售额和订单量(含总计):")
print(pivot_table_with_total.to_string(index=False))
# 可选:保存到Excel文件
# pivot_table_with_total.to_excel('地区销售统计.xlsx', index=False)
数据输出结果分析
C:\G_tools\python3\step\python.exe C:/Users/lenovo/PycharmProjects/test01/销售图表分析/Python实现按地区统计销售额和订单量的透视表功能.py
按地区统计的销售额和订单量(含总计):
地区 总订单量 总销售额(元)
北京 98 5280
上海 109 4900
杭州 64 3170
成都 51 2610
深圳 39 2580
南京 53 2410
重庆 31 2410
广州 32 2050
武汉 34 1820
西安 19 1310
总计 530 28540
更多推荐

所有评论(0)