数据分析学习目录:
一、Excel系列——四大常用函数及十大高级图表
二、SQL系列——性能优化/多表关联/窗口分析函数等
三、统计学系列——概率论/置信区间/相关/抽样等
四、Pandas系列——数据读取/清洗/规整/分析实战等
五、Python做图系列——箱型图/散点图/回归图/热力图等
六、业务积累系列——流水预测/精细化运营/排序算法等
七、Kmeans系列——原理/评价指标/RFM实战等
八、决策树系列——算法原理/调参/python实现/项目实战
九、贝叶斯系列——算法原理/3种模型/文本分类实战
十、神经网络系列——BP算法原理/最小二乘法/项目实战
数据报表开发是数据分析师一项非常重要的工作内容,不管是大公司的数据中台,还是小型公司的报表推送,Python都是实现报表开发的重要工具。
本篇分成两部分,首先讲解Python操作Excel基础用法(建表,建sheet,插入数据,合并单元格,获取行列数等),后面结合一个实例讲解如何利用python进行报表开发
公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料
① 建立工作簿/建立工作表/插入值/保存excel
用的是openpyxl库,可以通过pip install openpyxl安装
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet("data")
ws1.title = "data_1"
ws2 = wb.create_sheet("Mysheet", 0)
ws2.title = 'data_2'
ws1.sheet_properties.tabColor = "1072BA"
print(wb["data_1"])
print(wb.sheetnames)
ws3 = wb.copy_worksheet(ws1)
ws3.title = 'data_3'
ws1['A1']=5201314
ws1['B2']='forever'
ws1.cell(row=1, column=2, value=10)
ws1.cell(row=2, column=3).value = 100
wb.save(r'C:\Users\cindy407\Desktop\ceshi.xlsx')
打开ceshi.xlsx如下:

② 打开文件/选择区域/合并单元格/插入图片
delivery_data.xlsx 是某平台销售和发货数据(文末有获取方式),之前有一篇文章进行过专项分析:
Pandas数据分析项目实战①——货品送达率,让你体会数据的魔力
data = openpyxl.load_workbook(r'C:\Users\cindy407\Desktop\delivery_data.xlsx')
print(data.sheetnames)
print(data['原始数据'].max_row,data['原始数据'].max_column)
ws = data['原始数据']
for cell in ws['A'][1:]:
print(cell.value,end=',')
print('*'*50)
for cell in ws[1]:
print(cell.value,end=',')
print()
for row in ws.iter_rows(min_row=1,min_col=1,max_row=5,max_col=5):
for cell in row:
print(cell.value,end=',')
print()
row = []
for i in ws.iter_rows():
row.append(i)
print(row)
print(row[1])
print(row[1][1])
print(row[1][1].value)
img = Image(r'C:\Users\cindy407\Desktop\logo.png')
ws.add_image(img, 'K1')
ws.merge_cells(start_row=1,start_column=1,end_row=1,end_column=3)
ws.merge_cells('C2:C5')
ws.unmerge_cells('C2:C5')
data.save(r'C:\Users\cindy407\Desktop\delivery_data_1.xlsx')
打开delivery.data_1.xlsx如下:
公众号: 数据小斑马,关注即可获得价值1000元的数据分析学习资料
报表开发的顺序是:
step 1: 设定报表框架
step 2: 撰写SQL从数据库取出源数据
step 3: 利用Pandas进行数据清洗和处理
step 4: 存入Excel并保存至本地
step 5: 设置定时邮件发送给相关人员
之前一篇文章讲解过step 1 和 2
(python全球疫情分析,告诉你海外疫情到底有多严峻 | 附290行代码)
本次只讲解step 3和4,后续会讲解setp 5
先看下原始数据:

想要实现的报表如下,监控每一天的销售、发货和用户反馈情况

代码如下:
data = pd.read_excel(r'C:\Users\cindy407\Desktop\delivery_data.xlsx',sheet_name='原始数据')
pd.options.display.max_rows=None
pd.options.display.max_columns=None
df1 = data.groupby(['销售时间'])['订单号'].count()
df2 = data.groupby(['销售时间'])[['数量','销售金额']].sum()
df3 = data.groupby(['销售时间'])['交货时间'].count()
data['销售时间1'] = data['销售时间'].apply(lambda x: datetime.strptime(x.replace('/','-'),'%Y-%m-%d'))
data['交货时间'] = data['交货时间'].apply(lambda x: datetime.strptime(x.replace('/','-'),'%Y-%m-%d'))
data['送货时间'] = (data['交货时间'] - data['销售时间1']).apply(lambda x: x.days)
bin = [0,14,30,60,90,120]
data['送货天数'] = pd.cut(data['送货时间'] ,bins=bin)
df4 = data.groupby(['销售时间','送货天数'])['销售时间'].count().unstack()
df5 = data.groupby(['销售时间','货品用户反馈'])['销售时间'].count().unstack()
df = pd.concat([df1,df2,df3,df4,df5],axis=1)
df.columns=['销售订单数','销售件数','销售金额','已交货订单数','30-60天交货占比','90-120天交货占比','60-90天交货占比','拒收比例','质量合格比例','返修比例']
df['60-90天交货占比'] = df['60-90天交货占比']/df['已交货订单数']
df['90-120天交货占比'] = df['90-120天交货占比']/df['已交货订单数']
df['30-60天交货占比'] = df['30-60天交货占比']/df['已交货订单数']
df['拒收比例'] = df['拒收比例']/df['已交货订单数']
df['质量合格比例'] = df['质量合格比例']/df['已交货订单数']
df['返修比例'] = df['返修比例']/df['已交货订单数']
writer = pd.ExcelWriter(r'C:\Users\cindy407\Desktop\daily_report.xlsx')
df.to_excel(writer,sheet_name='汇总数据')
data.to_excel(writer,sheet_name='明细数据',index=False)
writer.save()
python操作excel是很基础的用法,更高级的做法是用pandas替代excel进行处理,再存入Excel,所以掌握pandas的用法可能会更重要喔
本人互联网数据分析师,目前已出Excel,SQL,Pandas,Matplotlib,Seaborn,机器学习,统计学,个性推荐,关联算法,工作总结系列。
关注公众号“数据小斑马
",回复"利用pandas
" 即可免费获取《利用pandas进行数据分析》最新版
,学习pandas必备;
回复“发货
" 即可获得文中数据集和所有代码
作者:微信公众号(数据小斑马)数据报表开发是数据分析师一项非常重要的工作内容,不管是大公司的数据中台,还是小型公司的报表推送,Python都是实现报表开发的重要工具。本篇分成两部分,首先讲解Python操作Excel基础用法(建表,建sheet,插入数据,合并单元格,获取行列数等),后面结合一个实例讲解如何利用python进行报表开发一、Python操作Excel用法① 建立工作簿/建立工作表/插入值/保存excel用的是openpyx...
我们可以试用可视化包——Pyechart。
Echarts是百度开源的一个数据可视化JS库,主要用于数据可视化。
pyecharts是一个用于生成Echarts图标的类库。实际就是Echarts与Python的对接。
pyecharts兼容Python2和Python3。执行代码:
pip install pyecharts(快捷键Windows+R——输入cmd)
1.柱状图/条形图
from pyecharts import Bar
attr=[衬衫,羊毛衫,雪纺衫,裤子,高跟鞋,袜子]
v1=[5,20,36,10,75,90]
v2=[10,2
直接在html中写一个table标签,然后单独把表格部分保存成图片
或者是直接将excel中的内容保存成一个图片
刚开始的思路,是直接生成一个带有table标签的html文件,然后将这个文件转成图片,经过查找资料发现需要安装webkit2png,而这个库又依赖其他的东西,遂放弃。
当初的目标是直接生成一个图片,并且是只需要安装python依赖库就行,而不需要在系统层面安装相应的依赖包
后来考虑使用Python的图片处理库Pillow,和生成表格式的库prattytable,下面的图片是最终生成的图片效果
总体来说是分为两个步骤:
使用prat
非常感谢您的提问!生成Excel数据报表是Python中非常常见的任务,您可以使用第三方库如openpyxl或xlwt来实现。以下是一个使用openpyxl库生成Excel数据报表的示例代码:
```python
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 选择第一个工作表
worksheet = workbook.active
# 写入数据
worksheet['A1'] = '姓名'
worksheet['B1'] = '年龄'
worksheet['C1'] = '性别'
worksheet['A2'] = '张三'
worksheet['B2'] = 25
worksheet['C2'] = '男'
worksheet['A3'] = '李四'
worksheet['B3'] = 30
worksheet['C3'] = '女'
# 保存工作簿
workbook.save('data.xlsx')
这段代码将生成一个名为"data.xlsx"的Excel文件,其中包含三列数据:姓名、年龄和性别。您可以根据需要修改这些数据,或者添加更多的数据列和行。
希望这个示例代码能够帮助您完成您的任务!