Excel透视表与python实现

目录

一、Excel透视表

1、源数据

2、数据总分析

3、数据top分析

二、python实现

1、第一张表演示

2、第二张表演示


一、Excel透视表

1、源数据

1)四个类目,每类50条数据

2)数据内容

2、数据总分析

1)选择要分析的字段,左侧为要对其进行汇总的数据,右侧为要汇总的具体值项

2)值字段设置

值汇总方式:数据计算方式

值显示方式:数据的百分比

数字格式:数字的表示方式(如小数点个数等)

3、数据top分析

1)按照近一个销售额对每个品类的top5进行分析

依据 "求和项:近一个月销售额" 对ID的top5进行选择

二、python实现

1、第一张表演示

复制代码
import pandas as pd
import numpy as np
#读取原始文件
file=pd.read_excel('F:\Excel\\透视表.xlsx',sheet_name='销售源数据')
#对数据汇总做成透视表 第一张表
data1=file.pivot_table(index=['品类'],values=['近一个月销售额','近一个月销量','团购价'],aggfunc=[np.sum,np.mean]).reset_index()
data11=pd.DataFrame(data1.values[:,[0,2,3,6]],columns=['品类','求和项:近一个月销售额','求和项:近一个月销量','平均值项:团购价']).sort_values('求和项:近一个月销售额',ascending=False).reset_index(drop=True)
data11['求和项:近一个月销售额']=data11['求和项:近一个月销售额'].astype(float).map(lambda x:'{:.1f}'.format(x))
data11['平均值项:团购价']=data11['平均值项:团购价'].astype(float).map(lambda x:'{:.1f}'.format(x))
data11

2、第二张表演示

复制代码
#第二张表
data2=file.pivot_table(index=['品类','ID'],values=['近一个月销售额','近一个月销量','团购价'],aggfunc=[np.sum,np.mean]).reset_index()
data22=pd.DataFrame(data2.values[:,[0,1,3,4,5]],columns=['品类','ID','求和项:近一个月销售额','求和项:近一个月销量','平均值项:团购价'])
#按照品类选择出销售额最高的ID
data22[['求和项:近一个月销售额','求和项:近一个月销量','平均值项:团购价']]=data22[['求和项:近一个月销售额','求和项:近一个月销量','平均值项:团购价']].astype(float)
#建立一张新表进行拼接
data24=pd.DataFrame()
for i in data11['品类'].to_list():
    data23=data22.loc[data22[data22.品类==i].index,:].nlargest(5,'求和项:近一个月销售额')
    data24=pd.concat([data24,data23],axis=0)
data24['求和项:近一个月销售额']=data24['求和项:近一个月销售额'].astype(float).map(lambda x:'{:.1f}'.format(x))
data24['平均值项:团购价']=data24['平均值项:团购价'].astype(float).map(lambda x:'{:.1f}'.format(x))
data24
相关推荐
顾林海9 小时前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程
呱呱复呱呱12 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
曲幽17 小时前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict
荣码17 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
兵慌码乱1 天前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵1 天前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户0332126663671 天前
使用 Python 从零创建 Word 文档
python
Csvn2 天前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽2 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate