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

Java架构师联盟 2021-02-22 19:29:30
Python numpy def xlsx openpyxl


前言

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

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

 

初识数据分析

 

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

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

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

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

直接看效果图

img

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

这是数据格式:

img

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

 

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

 

 

爬虫获取数据代码

# -*- coding: utf-8 -*-
import requests
from lxml import etree
import 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)

 

当我们的数据获取下来并且按照一定的规则整理完成之后,具体的步骤,可以参考我之前的python爬虫的相关内容

而当数据获取之后,我们就可以根据这些数据进行相应的数据分析,下面只给大家展示一些重点代码,详细的代码我已经上传到我的码云仓库中,有需要的朋友可以自取:

仓库地址在这里

 

img

数据分析代码

 

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

#1、获取数据

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)

#2、绘制图表

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

#3、数据填充到图表中

#通过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)

#4、展示

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,但是你还用了之前网上的教程,会报错

img

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

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

img

就可以了

 

这也是现在代码更新换代带来的一个问题,就是很多之前的代码都不能使用或者报错,这个问题对于初学者就很不友好,可能要翻查大量的资料,却不知道,原因和答案就在控制台展示了

 

图片

—END—

 

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

这是我给大家的开年福利

img

 

版权声明
本文为[Java架构师联盟]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4472036/blog/4959365

  1. 翻译:《实用的Python编程》02_02_Containers
  2. Python基于粒子群优化的投资组合优化研究
  3. ubuntu部署django项目
  4. 兩年Java,去位元組跳動寫Python和Go
  5. 翻譯:《實用的Python程式設計》02_02_Containers
  6. 这样学习Python,爷爷都学会了!超简单Python入门
  7. [Python] 基于 jieba 的中文分词总结
  8. 【python】递归听了N次也没印象,读完这篇你就懂了
  9. [Python] 基于 jieba 的中文分词总结
  10. 人理解迭代,神则体会递归,从电影艺术到Python代码实现神的逆向思维模式
  11. [Python] 基於 jieba 的中文分詞總結
  12. Python属于后端开发还是前端开发?Python入门!
  13. 【python】递归听了N次也没印象,读完这篇你就懂了
  14. 一天快速入门python
  15. 学习Python对年龄有没有要求?30岁可以吗?
  16. 清华教授!12小时整理的最全Python教程(文末无偿分享)
  17. 使用Python开发DeFi项目
  18. python 函数详解
  19. Python工程师是做什么的?前景如何?
  20. Filecmp -- comparison of files and directories
  21. Python - zip() 函数
  22. 30 周年生日,Python 先驱是怎么评价这门语言的?
  23. Drawing and beautifying skills of [Python] Matplotlib chart
  24. Python + dash rapid web application development static components
  25. Translation: practical Python Programming 02_ 01_ Datatypes
  26. python将excel自适应导入数据库
  27. 从小白到大师,这里有一份Pandas入门指南
  28. [Python] 茎叶图和复合饼图的画法
  29. [Python interface automation] - regular use case parameterization
  30. Translation: practical Python Programming 02_ 02_ Containers
  31. Two years of Java, to write Python and go
  32. Translation: practical Python Programming 02_ 02_ Containers
  33. Two years of Java, to write Python and go
  34. Python-geoplot 空间核密度估计图绘制
  35. Python-seaborn 经济学人经典图表仿制
  36. python空间绘图- regionmask掩膜操作示例
  37. Python 空间绘图 - Cartopy 经纬度添加
  38. Python-pykrige包-克里金(Kriging)插值计算及可视化绘制
  39. Python 批量重采样、掩膜、坡度提取
  40. python - 多种交通方式可达圈分析
  41. Python 空间绘图 - 房价气泡图绘制
  42. Translation: practical Python Programming 02_ 02_ Containers
  43. Research on Portfolio Optimization Based on particle swarm optimization
  44. Ubuntu deploying Django project
  45. Two years of Java, write Python and go without byte beating
  46. Translation: practical Python Programming 02_ 02_ Containers
  47. So learn python, grandfather learned! Introduction to super simple Python
  48. python3 多线程 与 mongo亿级消费日志数据 新鲜demo 【优化第一版】
  49. Summary of Chinese word segmentation based on Jieba
  50. I've heard it n times, but I'm not impressed. After reading this, you'll understand
  51. Summary of Chinese word segmentation based on Jieba
  52. From movie art to Python code to realize God's reverse thinking mode
  53. Summary of Chinese word segmentation based on Jieba
  54. ARIMA模型预测CO2浓度时间序列-python实现
  55. Python belongs to back-end development or front-end development? Introduction to Python!
  56. python isinstance()
  57. I've heard it n times, but I'm not impressed. After reading this, you'll understand
  58. This article will familiarize you with the transformation process of Python - & gt; cafe - & gt; om model
  59. 如何用Python一键修改上万个文件名
  60. One day quick start to Python