写点什么

窥探未来不是梦,python 数据分析轻松实现

用户头像
小Q
关注
发布于: 2021 年 02 月 22 日

前言


什么是编程,简单点说其实就是去写代码?那就这么一个枯燥的工作,为什么会有这么多的人想要进入这个行业呢?其实,作为一个从业多年的“资深 cv 工程师”,一个高考 6 个院校,每个院校 6 个专业,没有一个跟计算机沾边的人,到现在彻底爱上了计算机这一行,其实很简单,就是当看到自己写了无数行的代码,最后展现成一个个的功能 demo,帮助很多人节省了大量的实践,demo 联合起来不就是我们的项目吗?对吧,其实编程的魅力就是用最短的时间教会电脑帮你做各种难以完成的事情,然后去帮助他人


因为之前的时候我给大家写过一些 Python 爬虫的相关案例,那最近特别火的 python 能帮你做什么?这玩意好像跟我的工作没什么太大的关系啊,那不妨花费一点时间往下看一下,除了人工智能,大数据这样的高端学科之外,他在你的日常生活中都有什么帮助

关注公众号:Java 架构师联盟,每日更新技术好文


初识数据分析


如果你是会计,行政,新闻,医学等等职业你都可以借助数据分析帮你完成大量数据的整理汇报工作


这是什么时代,这是一个数据的时代,你们每天要处理大量的数据报表、汇报甚至是客户关系新闻动态等内容,但是,有一句话,数不如表,表不如图,不知道你的年终汇报是否进行完了,我就以这个年终汇报为例,其实说白了,年终汇报要做的事情不就是对于整年的数据以及未来数据的一个展示吗?而这些数据,再整理完成进行汇报的时候,你能怎么做,之前的数据可以直接用现成的,通过 excel 等操作,虽然麻烦点,但是也能勉强制作一些表格(ps:office 大神除外啊,我这种 office 小渣渣,想都不要想),但是数据量上来之后,office 大神也不行吧,更何况借助之前的数据,进行未来的展示。而年终汇报决定的是年终奖的多少,以及来年你的职业发展了,那这个时候,就可以通过对数据的处理筛选和可视化分析,得出结论,帮你做决策了


各位,摸着脑袋拍板做决定的时代已经过去了,现在是数据驱动决策的时代,不然你写一份年终报告,老板问你这个结论怎么得来的,你说你感觉出来的吗?如果你的整个报告数据推导结论做的很到位,你年终述职是不是更加有加年终奖的可能?


那说了这么多,python 能帮你做什么事情呢?


直接看效果图



这就是我们最基础的,通过相应的数据来绘制我们的图标,数据来源也很简单,就是在网上可以下载的美国 gdp 数据图,但是我想真的让你去实现的话,你会很头疼的,不信你可以试试看

这是数据格式:



数据来源地址:https://www.kylc.com/stats/global/yearly_per_country/g_gdp/usa.html


这些数据我想光让你去粘贴之后整理就要耗费不少的时间吧,但是,同样的内容,如果全都交给 python 来做的话,能帮你节省多少时间呢?首先是我们的数据获取


爬虫获取数据代码

# -*- coding: utf-8 -*-import requestsfrom lxml import etreeimport openpyxl

def get_html(url): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36" } html = requests.get(url) return html.text
def parse_content(content): e = etree.HTML(content) year_list = e.xpath("//tr/td[1]/text()") gdp_list = e.xpath("//tr/td[2]/text()") percents_list = e.xpath("//tr/td[3]/text()") year_list = list(filter(is_correct,year_list)) year_list = list(map(int,year_list)) gdp_list = list(map(extract, gdp_list)) percents_list = list(map(delete_char,percents_list)) print(year_list) print(gdp_list) print(percents_list) save_data(year_list,gdp_list,percents_list)

def save_data(year_list,gdp_list,percents_list): wk = openpyxl.Workbook() sheet = wk.active for i in range(len(year_list)): sheet.append([year_list[i],gdp_list[i],percents_list[i]]) wk.save("t2.xlsx")
def extract(s): return int(s[s.find('(')+1:s.rfind(')')].replace(",",""))
def delete_char(s): return float(s.replace("%",""))
def is_correct(s): s = s.strip() if s: return s.isdigit() return False
if __name__ == '__main__': content = get_html("https://www.kylc.com/stats/global/yearly_per_country/g_gdp/usa.html") parse_content(content)
复制代码


数据分析代码


#绘制美国GDP变化图表import xlrdimport matplotlib.pyplot as pltimport numpy as np
复制代码


#绘制美国GDP变化图表import xlrdimport matplotlib.pyplot as pltimport numpy as np
复制代码


data=xlrd.open_workbook(r'E:\Python\com\test\GDP\t4.xlsx')
#print(data.sheet_names()) #读取表格中的数据excel=data.sheet_by_name('Sheet')#print(excel.nrows)
复制代码


    #设置字体plt.rcParams['font.sans-serif']=['FangSong']    #绘制区域plt.figure(figsize=(16,9))plt.title("美国gdp变化图")
#构建xy轴plt.grid(linestyle='-.')plt.xlabel('年份')plt.ylabel('GDP(万亿)')
复制代码


#通过for循环遍历每一个单元格中的数据并且进行相应的存储year_list=[]for i in range(excel.nrows):    year=excel.cell_value(i,0)    # 将单元格的数据添加到列表中    year_list.append(year)

# !!!!!!!!最重要的点:将数据合并到一起形成多维数组arr=np.array(list(zip(year_list,gdp_list,percent_list)),dtype=np.float64)
复制代码


plt.plot(arr[:,[0]],arr[:,[1]]/1000000000000,"dg",label="GDP")plt.plot(arr[:,[0]],arr[:,[2]],"--r",label="市场占比")
#print(year_list)plt.legend()plt.show()
复制代码


如果你安装的是最新版本的 numpy,但是你还用了之前网上的教程,会报错



没关系,别紧张,不影响运行,只是说会报一个错,改进的方法也很简单

老版本的代码写的是 np.float 来限定数据类型,改进之后是这样的



—END—


这里也给大家准备了一些开年福利,有需要这些学习资料的,可以关注我,后台添加小助手:python1180 即可获取


备注公众号哦,不然是没有资料的,这是我给大家的开年福利



发布于: 2021 年 02 月 22 日阅读数: 25
用户头像

小Q

关注

还未添加个人签名 2020.06.30 加入

小Q 公众号:Java架构师联盟 作者多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果能为您提供帮助,请给予支持(关注、点赞、分享)!

评论 (1 条评论)

发布
用户头像
不错。互关哦
2021 年 02 月 26 日 10:04
回复
没有更多了
窥探未来不是梦,python数据分析轻松实现