目录:
语言本身就简单易学,书写代码简单快速
同时在数据分析以及大数据领域里有海量的功能强大的开源库,并持续更新
Pandas - 数据清洗、数据处理、数据分析
Sklearn - 机器学习、统计分析
PySpark - Spark使用Python
PyFlink - Flink使用Python
Matplotlib、Seaborn、Pyecharts - 出图表
Python在数据处理上独步天下:代码灵活、开发快速;尤其是Python的Pandas包,无论是在数据分析领域、还是大数据开发场景中都具有显著的优势:
Pandas是Python的一个第三方包,也是商业和工程领域最流行的结构化数据工具集,用于数据清洗、处理以及分析
Pandas和Spark中很多功能都类似,甚至使用方法都是相同的;当我们学会Pandas之后,再学习Spark就更加简单快速
Pandas在整个数据开发的流程中的应用场景
在大数据场景下,数据在流转的过程中,Python Pandas丰富的API能够更加灵活、快速的对数据进行清洗和处理
Pandas在数据处理上具有独特的优势:
底层是基于Numpy构建的,所以运行速度特别的快
有专门的处理缺失数据的API
强大而灵活的分组、聚合、转换功能
数据量大到excel严重卡顿,且又都是单机数据的时候,我们使用pandas
在大数据ETL数据仓库中,对数据进行清洗及处理的环节使用pandas
在数据分析、数据开发领域,除了Pandas还有其他常用的一些库,如下
NumPy(Numerical Python) :是 Python 语言的一个扩展程序库;运行速度非常快,主要用于数组计算
Matplotlib 是一个功能强大的数据可视化开源Python库
Seaborn 是一个Python数据可视化开源库;建立在matplotlib之上,并集成了pandas的数据结构
Pyecharts 是基于百度的echarts的Python开源库,有完整丰富的中文文档及示例
Sklearn,即scikit-learn 是基于 Python 语言的机器学习工具,经常用于统计分析计算
PySpark 是 Spark 为 Python 开发者提供的 API,具有Spark全部的API功能
Pandas基础知识
pandas数据结构
索引与列名的操作
增删改dataframe中的数据
查询dataframe中的数据
pandas中常用计算函数
数据清洗与处理
dataframe缺失值处理
pandas中数据类型详解
dataframe分组与分箱
dataframe合并与变形
保存数据与数据可视化
dataframe的读取与保存
图表可视化
Anaconda是什么?
Anaconda 是最流行的数据分析平台,全球两千多万人在使用
Anaconda 附带了一大批常用数据科学包,不光自带Python还集成150 多个科学包及其依赖项(默认的base环境)
Anaconda 是在 Conda(一个包管理器和环境管理器)上发展出来的
Conda可以帮助你在计算机上安装和管理数据分析相关包
Anaconda的仓库中包含了7000多个数据科学相关的开源库
Anaconda 包含了虚拟环境管理工具,通过虚拟环境可以使不同的Python或者开源库的版本同时存在
Anaconda 可用于多个平台( Windows、Mac OS X 和 Linux)
Jupyter Notebook是什么?
我们平时使用Anaconda 自带的jupyter notebook来进行开发,Anaconda 是工具管理器,jupyter notebook是代码编辑器(类似于pycharm,但jupyter notebook是基于html网页运行的)
不同的python项目,可能使用了各自不同的python的包、模块;
不同的python项目,可能使用了相同的python的包、模块,但版本不同;
不同的python项目,甚至使用的Python的版本都是不同;
为了让避免项目所使用的Python及包模块版本冲突,所以需要代码运行的依赖环境彼此分开,业内有各种各样的成熟解决方案,但原理都是一样的:不同项目代码的运行,使用保存在不同路径下的python和各自的包模块;不同位置的python解释器和包模块就称之为虚拟环境,具体关系图如下:
虚拟环境的本质,就是在你电脑里安装了多个Python解释器(可执行程序),每个Python解释器又关联了很多个包、模块;项目代码在运行时,是使用特定路径下的那个Python解释器来执行
很多开源库版本升级后API有变化,老版本的代码不能在新版本中运行
将不同Python版本/相同开源库的不同版本隔离
不同版本的代码在不同的虚拟环境中运行
conda create -n 虚拟环境名字 python=3.8 #创建虚拟环境 python=3.8 指定python版本
conda activate 虚拟环境名字 #进入虚拟环境
conda deactivate #退出虚拟环境
conda remove -n 虚拟环境名字 --all #删除虚拟环境,不要在当前的虚拟环境中删除当前的虚拟环境,会报错
conda env list #查看虚拟环境
在anaconda管理界面打开cmd命令行终端
# 阿里云:https://mirrors.aliyun.com/pypi/simple/
# 豆瓣:https://pypi.douban.com/simple/
# 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
# 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
pip install 包名 -i https://mirrors.aliyun.com/pypi/simple/ #通过阿里云镜像安装
在启动anaconda提供的CMD启动后,输入命令如下
# 可选操作,切换虚拟环境,使用不同的python解释器和包
conda activate 虚拟环境名字
# 切换磁盘位置,可选操作
cd d:/
d:
# 启动jupyter notebook
jupyter notebook
上述操作如下图所示
此时浏览器会自动打开jupyter notebook
#进入到虚拟环境中
conda activate 虚拟环境名字
#安装 jupyter_contrib_nbextensions
pip install jupyter_contrib_nbextensions
#jupyter notebook安装插件
jupyter contrib nbextension install --user --skip-running-check
.ipynb
,与我们正常熟知的.py
后缀不同Jupyter Notebook中分为两种模式:命令模式和编辑模式
两种模式通用快捷键
Shift+Enter
,执行本单元代码,并跳转到下一单元
Ctrl+Enter
,执行本单元代码,留在本单元
按ESC进入命令模式
Y
,cell切换到Code模式
M
,cell切换到Markdown模式
A
,在当前cell的上面添加cell
B
,在当前cell的下面添加cell
双击D
:删除当前cell
回退:Ctrl+Z
(Mac:CMD+Z)
重做:Ctrl+Y
(Mac:CMD+Y)
补全代码:变量、方法后跟Tab键
为一行或多行代码添加/取消注释:Ctrl+/
(Mac:CMD+/)
在命令模式中,按M即可进入到Markdown编辑模式
使用Markdown语法可以在代码间穿插格式化的文本作为说明文字或笔记
Markdown基本语法:标题和缩进
效果如下图所示
可以查看文件中的目录(大纲)
JupyterNotebook启动之后默认路径是在C盘的根路径,但很多时候我们想在别的路径创建或操作ipynb文件:打开Anaconda提供的CMD终端并切换路径,此时再启动jupyter notebook即可;比如此时我们想切换到D盘下的某个路径再启动
(base) C:\Users\windows10>D:
(base) D:\>cd D:\数据分析课程v1.6\05-新版3天版Pandas\代码
(base) D:\数据分析课程v1.6\05-新版3天版Pandas\代码>jupyter notebook
此时就会自动在浏览器中打开JupyterNotebook编辑器
# 导包并加载数据
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
# 显示全部数据
print(df)
# 查询中国的GDP
china_gdp = df[df.country=='中国'] # df.country 选中列名为country的列
# 显示前10条数据,默认查看前5条数据
print(china_gdp.head(10))
# 将year年份设为索引
china_gdp = china_gdp.set_index('year')
# 默认显示前5条
print(china_gdp.head())
# 画出GDP逐年变化的曲线图
china_gdp.GDP.plot()
plt.show()
# 使用同样的方法画出日本的GDP变化曲线,和中国的GDP变化曲线进行对比
jp_gdp = df[df.country=='日本'].set_index('year') # 按条件选取数据后,重设索引
jp_gdp.GDP.plot()
china_gdp.GDP.plot()
plt.show()
# 分别查询中国、美国、日本三国的GDP数据,并绘制GDP变化曲线、进行对比
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
china_gdp = df[df.country == '中国'].set_index('year')
us_gdp = df[df.country == '美国'].set_index('year')
jp_gdp = df[df.country == '日本'].set_index('year')
jp_gdp.GDP.plot()
china_gdp.GDP.plot()
us_gdp.GDP.plot()
plt.show()
# 设置图例
# 按条件选取数据
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
# 出图并添加图例
jp_gdp.GDP.plot(legend=True)
china_gdp.GDP.plot(legend=True)
us_gdp.GDP.plot(legend=True)
plt.show()
# 修改列名使图例显示为各国名称
# 按条件选取数据
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
# 对指定的列修改列名
jp_gdp.rename(columns={'GDP':'japan'}, inplace=True)
china_gdp.rename(columns={'GDP':'china'}, inplace=True)
us_gdp.rename(columns={'GDP':'usa'}, inplace=True)
# 画图
jp_gdp.japan.plot(legend=True)
china_gdp.china.plot(legend=True)
us_gdp.usa.plot(legend=True)
plt.show()
# 按条件选取数据
china_gdp = df[df.country=='中国'].set_index('year')
us_gdp = df[df.country=='美国'].set_index('year')
jp_gdp = df[df.country=='日本'].set_index('year')
# 对指定的列修改列名
jp_gdp.rename(columns={'GDP':'日本'}, inplace=True)
china_gdp.rename(columns={'GDP':'中国'}, inplace=True)
us_gdp.rename(columns={'GDP':'美国'}, inplace=True)
# 画图
jp_gdp['日本'].plot(legend=True)
china_gdp['中国'].plot(legend=True)
us_gdp['美国'].plot(legend=True)
# 解决中文显示问题,下面的代码只需运行一次即可
import matplotlib as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 如果没有黑体字体可以换个字体 楷体:KaiTi
mpl.rcParams['font.serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 解决负号不显示问题
Python Pandas的作用:清洗、处理、分析数据
Pandas环境搭建:
安装Anaconda,默认自带Python以及其他相关三方包
使用默认的base虚拟环境启动Jupyter Notebook
Python: 66666666666666 - Gitee.com