Python自动生成数据日报

Python019

Python自动生成数据日报,第1张

import pandas as pd

import numpy as np

import collections as Counter

from datetime import datetime

df=pd.read_excel("D:\曾海峰\python零一课程\用Python自动生成数据日报!\销售数据明细.xlsx",

parse_dates=['销售日期'])

df.head()#数据预览

df.info()#查看数据属性

"""

计算指标

计算指标设定,设置本文需要计算的指标,指标计算如下:

收入=销量*销售额

单量=销量汇总

货品数=货品数去重

收入环比:本月收入/上月收入-1

单量环比:本月单量/上月单量-1

计算本月相关指标

首先选取本月的数据,本月截止到2021年12月25日的数据,分别计算本月截止12月25日收入、

本月截止12月25日单量、本月截止12月25日货品数。"""

"""shouru1=(the_month['销量']*the_month['销售额']).sum()#本月截止12月25日收入

danliang1=the_month['销量'].sum()#本月截止12月25日单量

huopin1=the_month['货号'].unique()#本月截止12月25日货品数

list_huopin1=len(huopin1.tolist())

print("本月截止到12月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru1,danliang1,list_huopin1))"""

"""计算上月相关指标

同时选取上月同期的数据,数据范围11月1日到11月25日的数据,分别计算上月同期的收入、上月同期的单量、上月同期的货品数。"""

"""shouru2=(last_month['销量']*last_month['销售额']).sum()#本月截止12月25日收入

danliang2=last_month['销量'].sum()#本月截止11月25日单量

huopin2=last_month['货号'].unique()#本月截止11月25日货品数

list_huopin2=len(huopin2.tolist())

print("本月截止到11月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru2,danliang2,list_huopin2))"""

"""利用函数进行封装

以上我们可以发现规律,计算本月的相关指标数据与计算上月同期的指标数据计算逻辑是一样的,除了数据选取的日期不一样,我们可以自定义一个函数,用于计算相关的数据指标,简化数据计算的流程。"""

def get_month_date(df):

shouru=(df['销量']*df['销售额']).sum()

danliang=df['销量'].sum()

huopin=df['货号'].nunique()

#list_huopin=len(huopin.tolist())

#return(shouru,danliang,list_huopin)

return(shouru,danliang,huopin)

the_month=df[(df['销售日期']>=datetime(2021,12,1))&(df["销售日期"]<=datetime(2021, 12,25))]

shouru1,danliang1,huopin1=get_month_date(the_month)#计算本月数据指标

print("本月截止12月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru1,danliang1,huopin1))

last_month=df[(df['销售日期']>=datetime(2021,11,1))&(df["销售日期"]<=datetime(2021, 11,25))]

shouru2,danliang2,huopin2=get_month_date(last_month)#计算本月数据指标

print("上月截止11月25日收入为{:.2f}元,单量为{}个,货品数为{}个".format(shouru2,danliang2,list_huopin2))

"""计算环比 构建一个DataFrame,填入具体的计算指标数值,计算环比数据。"""

ribao=pd.DataFrame([[shouru1,shouru2],

[danliang1,danliang2],

[huopin1,huopin2]],

columns=["本月","上月"],

index=['收入','单量','货品数'])

ribao['环比']=ribao['本月']/ribao['上月']-1

ribao['环比']=ribao['环比'].apply(lambda x:format(x,'.2%'))#数据小数转百分数,%2表示保留小数点后2位

ribao

""可以将具体的数据日报导出到本地。""

ribao.to_excel(r'C:\Users\liangfeng\Desktop\数据日报.xlsx',index=False)

df['销售月份']=df['销售日期'].astype(str).str[0:7].str.replace('-','')

df_group=df.groupby("销售月份").aggregate({'销售额':'sum','销量':'sum'})

df_group=df.groupby("销售月份").aggregate({"销售额":"sum","销量":"sum"})

df_group

from pyecharts import options as opts

from pyecharts.charts import Bar, Line

from pyecharts.faker import Faker

v1 = df_group['销售额'].round(2).tolist()

v2 = df_group['销量'].tolist()

bar = (Bar()

.add_xaxis(df_group.index.tolist())

.add_yaxis("销售额", v1 ,category_gap="60%",gap="10%") #设置柱形间隙宽度

.extend_axis(yaxis=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 单"), min_=0,max_=1750))#设置次坐标轴坐标大小

.set_series_opts(label_opts=opts.LabelOpts(is_show=True))#显示数据标签

.set_global_opts(title_opts=opts.TitleOpts(title="21年每月销售额与销量情况"),

datazoom_opts=opts.DataZoomOpts(),#添加滚动条

yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(formatter="{value} 元"),min_=0,max_=850000)))#设置主坐标轴坐标大小

line = Line().add_xaxis(df.index.tolist()).add_yaxis("销售量", v2, yaxis_index=1, is_smooth=True)

bar.overlap(line)

bar.render_notebook() ###bar.render(r'C:\Users\尚天强\Desktop\销售日报.html')

其实python非常适合初学者入门,上手很容易。

我就是完全通过网上资源学了python的。

最大的是3点经验:

1.找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。

2.去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。

3.最好能找到一个已经会python的人。问他一点学习规划的建议,然后在遇到卡壳的地方找他指点。这样会事半功倍。

使用Python进行数据挖掘是最近几年才开始火起来的,之前网上很多的资料都是关于Python网页开发等。但使用Python进行数据挖掘的侧重点已经完成不一样了。本人就是浪费了很多时间来筛选这些博客、书籍。所以就有了本文,希望能帮大家少走一点弯路。

熟练掌握任何一门语言,几乎都需要经过以下过程:

良师--学习Python课程+入门书籍+浏览技术博客

社区帮助--善于使用搜索引擎、Mail List

益友 -- 寻找学习伙伴

Learn by Code --项目实践

一、Python学习课程推荐

这两个学习课程从最基础的Python语法开始,介绍了Python数据分析、统计模型以及机器学习的各个方面,内容十分充足。之所以建议使用老外的课程是因为,老外上课假定你什么都不会,讲解深入浅出,尤其是对于华盛顿大学的机器学习课程,把复杂的概念讲解得十分简单。

1. 密歇根大学的《学习使用Python编程并分析数据》主要包括以下课程(讲解十分详细,深入浅出,非常适合入门学习,视频都是有字幕的):

《大家的编程 (Python 入门》:课程涵盖了如何使用Python的基本指令编写程序. 课程对学生没有先设要求, 我们只涉及到最基本的数学, 有一定使用电脑经验的人都可以完全掌握这门课的内容.

《Python 数据结构》:本课程将介绍Python编程语言的核心数据结构。我们将学习编程语言的基础概念,探索如何使用Python的内置数据结构,如列表、字典、元组,进行更为复杂的数据分析。

《使用 Python 访问网络数据》:使用Python爬取和解析网络数据

《Python 数据库开发》:使用Python和数据库进行交互

《使用 Python 获取并处理数据,并用可视化方式展现数据》

2. 华盛顿大学的《机器学习》专项课程

在专项课程页面无法选择旁听,必须点击进入单独课程页面才可,这个课程专题旁听是有限制的,无法提交作业;如有需求,可以申请奖学金,回答三个问题即可,系统自动通过申请。

《机器学习基础:案例研究》:你是否好奇数据可以告诉你什么?你是否想在关于机器学习促进商业的核心方式上有深层次的理解?你是否想能同专家们讨论关于回归,分类,深度学习以及推荐系统的一切?在这门课上,你将会通过一系列实际案例学习来获取实践经历。

《机器学习:回归》

《机器学习:分类》

《机器学习:聚类和检索》

《机器学习:推荐系统和降维》

《机器学习:应用深度学习创建智能运用》

二、网上打码教程

Learn by doing!!! 学习编程最有效的方式就是敲代码!

Codecademy 围绕Python 的基础语法,内容非常丰富。

Datacamp Python基本语法(他家的R语言课程十分不错!)

三、Python技术博客

简单介绍一些非常棒的Python技术学习的博客

1. 廖雪峰Python教程 简单易上手的Python基础语法教程,值得学习, Python 2和Python 3版本都有。

2. 非常棒的pandas练习Github Repo

3. 很详细的Python 爬虫教程

4. 国外Data Science博客大全

四、Python入门书籍推荐

常用书籍下载网址,几乎囊括了网上能找得到的所有Python相关的书籍(PDF、Epub和mo bi格式),且提供云盘下载链接。你值得拥有!

python | 搜索结果

1. 掌握Python语法的基础上学习《Python for data analysis》是比较不错的选择,涵盖了ipython notebook、Numpy、Scipy和Pandas包的使用。

2.《Python数据分析与挖掘实战》介绍了使用Python进行数据挖掘的详细案例,数据和代码都可以下载,作为机器学习的进阶学习是不错的选择(这本书也用对应的R语言和Matlab 版本)。

3. 《Python Cookbook》很厚的一本书,可以作为Python语法查询手册。

再添加几个外文书籍下载网址:

1. All IT eBooks 全

2. Library Genesis 各种书籍,不局限于编程书籍

3. Fox eBook - eBooks Free Download Site

4. Development / Programming / AvaxHome

五、推荐订阅博客(更细频率较高)

iPhone上可以使用Reeder阅读器,Instapaper用来保存后稍后阅读,因为信息量比较大。

No free Hunch Kaggle竞赛平台的官方博客,包括一些优秀的代码解读以及高分选手的采访,十分有用的经验(来自不同背景,不同年龄层次,不同职业的选手)

Flowing Data 十分有用的数据分析的案例

Python日报 内容十分精彩的集锦(中文)

六、FAQ (待续)

Python 2.x还是Python 3.x?

如何安装Python包? 强烈推荐Anaconda包,你值得拥有!尤其是Windows系统。

是否需要很强的统计和数学背景? 有良好的数学和统计背景固然很好,但是现在很多岗位对数学和统计背景要求并不很多,都是简单的算法,Python编程已经能够很方便地实现,更多的是对业务的深入理解。如有需要建议,边学习Python边学习数学统计。

七、实践项目

Kaggle竞赛项目,里面不仅仅有很多竞赛项目,而且有很多可供学习的代码、博客以及论坛,都是实战项目,有很强的实践价值。