[黑马程序员Pandas教程]——Pandas快速体验

news2024/11/18 18:43:22

目录:

  1. 为什么要使用Python做数据开发
  2. Python在数据开发领域的优势
  3. 为什么要学习Pandas
  4. 其他常用Python库介绍
  5. 主要内容介绍
  6. Anaconda安装
  7. Anaconda的虚拟环境管理
  8. 虚拟环境的作用
  9. 可以通过Anaconda界面创建虚拟环境
  10. 通过命令行创建虚拟环境
  11. 通过Anaconda管理界面安装包
  12. 也可以通过anaconda3提供的CMD终端工具进行python包的安装
  13. 启动 Jupyter Notebook
  14. 可以通过Anaconda启动 Jupyter Notebook
  15. 推荐通过终端启动 Jupyter Notebook
  16. Jupyter notebook的功能扩展
  17. Jupyter Notebook的界面
  18. Jupyter Notebook常用快捷键
  19. Jupyter Notebook中使用Markdown
  20. 切换JupyterNotebook启动路径
  21. Jupyter Notebook快捷键
  22. 对比中日两国的GDP变化曲线
  23. 对比中美日三国GDP变化曲线
  24. 解决中文不能在图表中正常显示的问题
  25. 总结
  26. 项目地址

1.为什么要使用Python做数据开发

  • 易学易用:Python的语法清晰简洁,易于理解,使得开发者能够快速上手并快速开发出原型。Python还提供了大量的第三方库,使得开发过程更加便捷。
  • 高效的数据处理能力:Python具有强大的数据处理能力,特别是利用numpy、pandas等库进行科学计算和数据处理。这些库使得Python在数据开发领域具有很大的优势。
  • 广泛的社区支持:Python有一个庞大的开发者社区,可以为开发者提供丰富的资源和支持。例如,有许多开源的数据分析库和框架(如numpy、pandas、scipy、matplotlib等)都是用Python编写的,这使得Python在数据开发领域具有很高的灵活性。
  • 跨平台性:Python可以在多种操作系统(如Windows、Linux、Mac OS等)上运行,使得开发过程更加便捷。
  • 可扩展性:Python可以轻松地与其他语言(如C++、Java等)进行集成,使得开发过程更加灵活。
  • 应用广泛:Python在数据科学、机器学习、自然语言处理等领域都有广泛的应用,使得Python在数据开发领域具有很高的价值。
  • 丰富的数据处理工具:Python提供了丰富的数据处理工具,如Jupyter Notebook、matplotlib等,可以帮助开发者更好地理解和分析数据。

2.Python在数据开发领域的优势

  • Python作为当下最为流行的编程语言之一,可以独立完成数据开发的各种任务:
    • 语言本身就简单易学,书写代码简单快速

    • 同时在数据分析以及大数据领域里有海量的功能强大的开源库,并持续更新

      • Pandas - 数据清洗、数据处理、数据分析

      • Sklearn - 机器学习、统计分析

      • PySpark - Spark使用Python

      • PyFlink - Flink使用Python

      • Matplotlib、Seaborn、Pyecharts - 出图表

3.为什么要学习Pandas

Python在数据处理上独步天下:代码灵活、开发快速;尤其是Python的Pandas包,无论是在数据分析领域、还是大数据开发场景中都具有显著的优势:

  • Pandas是Python的一个第三方包,也是商业和工程领域最流行的结构化数据工具集,用于数据清洗、处理以及分析

  • Pandas和Spark中很多功能都类似,甚至使用方法都是相同的;当我们学会Pandas之后,再学习Spark就更加简单快速

  • Pandas在整个数据开发的流程中的应用场景

    • 在大数据场景下,数据在流转的过程中,Python Pandas丰富的API能够更加灵活、快速的对数据进行清洗和处理

  • Pandas在数据处理上具有独特的优势:

    • 底层是基于Numpy构建的,所以运行速度特别的快

    • 有专门的处理缺失数据的API

    • 强大而灵活的分组、聚合、转换功能

  • 数据量大到excel严重卡顿,且又都是单机数据的时候,我们使用pandas

  • 在大数据ETL数据仓库中,对数据进行清洗及处理的环节使用pandas

4.其他常用Python库介绍

在数据分析、数据开发领域,除了Pandas还有其他常用的一些库,如下

  • NumPy(Numerical Python) :是 Python 语言的一个扩展程序库;运行速度非常快,主要用于数组计算

  • Matplotlib 是一个功能强大的数据可视化开源Python库

  • Seaborn 是一个Python数据可视化开源库;建立在matplotlib之上,并集成了pandas的数据结构

  • Pyecharts 是基于百度的echarts的Python开源库,有完整丰富的中文文档及示例

  • Sklearn,即scikit-learn 是基于 Python 语言的机器学习工具,经常用于统计分析计算

  • PySpark 是 Spark 为 Python 开发者提供的 API,具有Spark全部的API功能

5.主要内容介绍

  • Pandas基础知识

    • pandas数据结构

    • 索引与列名的操作

    • 增删改dataframe中的数据

    • 查询dataframe中的数据

    • pandas中常用计算函数

  • 数据清洗与处理

    • dataframe缺失值处理

    • pandas中数据类型详解

    • dataframe分组与分箱

    • dataframe合并与变形

  • 保存数据与数据可视化

    • dataframe的读取与保存

    • 图表可视化

6.Anaconda安装

  • 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网页运行的)

7.Anaconda的虚拟环境管理

  • 不同的python项目,可能使用了各自不同的python的包、模块;

  • 不同的python项目,可能使用了相同的python的包、模块,但版本不同;

  • 不同的python项目,甚至使用的Python的版本都是不同;

为了让避免项目所使用的Python及包模块版本冲突,所以需要代码运行的依赖环境彼此分开,业内有各种各样的成熟解决方案,但原理都是一样的:不同项目代码的运行,使用保存在不同路径下的python和各自的包模块;不同位置的python解释器和包模块就称之为虚拟环境,具体关系图如下:

虚拟环境的本质,就是在你电脑里安装了多个Python解释器(可执行程序),每个Python解释器又关联了很多个包、模块;项目代码在运行时,是使用特定路径下的那个Python解释器来执行

8.虚拟环境的作用

  • 很多开源库版本升级后API有变化,老版本的代码不能在新版本中运行

  • 将不同Python版本/相同开源库的不同版本隔离

  • 不同版本的代码在不同的虚拟环境中运行

9.可以通过Anaconda界面创建虚拟环境

10.通过命令行创建虚拟环境

  • 在anaconda管理界面打开cmd命令行终端
  • 命令行终端对虚拟环境的操作命令如下
conda create -n 虚拟环境名字 python=3.8  #创建虚拟环境 python=3.8 指定python版本
conda activate 虚拟环境名字 #进入虚拟环境
conda deactivate #退出虚拟环境
conda remove -n 虚拟环境名字 --all  #删除虚拟环境,不要在当前的虚拟环境中删除当前的虚拟环境,会报错
conda env list #查看虚拟环境

 11.通过Anaconda管理界面安装包

  • 点击Environment选项卡,进入到环境管理界面,通过当前管理界面安装python的包模块  

12.也可以通过anaconda3提供的CMD终端工具进行python包的安装

  • 在anaconda管理界面打开cmd命令行终端

  • 可以通过conda install 安装【不推荐】
  • conda install 包名字
  • 但更推荐使用pip命令来安装python的第三方包【推荐】
  • pip install 包名字
  • 安装其他包速度慢可以指定国内镜像
# 阿里云: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/  #通过阿里云镜像安装

13.启动 Jupyter Notebook

  • 推荐使用命令行终端打开Jupyter Notebook

14.可以通过Anaconda启动 Jupyter Notebook

15.推荐通过终端启动 Jupyter Notebook

  • 这种方式先启动cmd,通过切换虚拟环境和磁盘位置,再启动Jupyter notebook
  • 在启动anaconda提供的CMD启动后,输入命令如下

# 可选操作,切换虚拟环境,使用不同的python解释器和包
conda activate 虚拟环境名字 

# 切换磁盘位置,可选操作
cd d:/
d:

# 启动jupyter notebook
jupyter notebook
  • 上述操作如下图所示

  • 此时浏览器会自动打开jupyter notebook

16.Jupyter notebook的功能扩展

  • 在启动anaconda提供的CMD启动后,安装jupyter_contrib_nbextensions库,在CMD中输入下列命令
#进入到虚拟环境中
conda activate 虚拟环境名字
#安装 jupyter_contrib_nbextensions
pip install jupyter_contrib_nbextensions
#jupyter notebook安装插件
jupyter contrib nbextension install --user --skip-running-check
  • 安装结束后启动jupyter notebook

  • 配置扩展功能,在原来的基础上勾选: “Table of Contents” 以及 “Hinterland”

17.Jupyter Notebook的界面

  • 新建notebook文档
  • 注意:Jupyter Notebook 文档的扩展名为.ipynb,与我们正常熟知的.py后缀不同

  •  新建文件之后会打开Notebook界面

  • 菜单栏中相关按钮功能介绍:
  • Jupyter Notebook的代码的输入框和输出显示的结果都称之为cell,cell行号前的 * ,表示代码正在运行  

18.Jupyter Notebook常用快捷键

Jupyter Notebook中分为两种模式:命令模式和编辑模式

  • 两种模式通用快捷键

    • Shift+Enter,执行本单元代码,并跳转到下一单元

    • Ctrl+Enter,执行本单元代码,留在本单元

  • 按ESC进入命令模式

  • Y,cell切换到Code模式

  • M,cell切换到Markdown模式

  • A,在当前cell的上面添加cell

  • B,在当前cell的下面添加cell

  • 双击D:删除当前cell

  • 编辑模式:按Enter进入,或鼠标点击代码编辑框体的输入区域  

  • 回退:Ctrl+Z(Mac:CMD+Z)

  • 重做:Ctrl+Y(Mac:CMD+Y)

  • 补全代码:变量、方法后跟Tab键

  • 为一行或多行代码添加/取消注释:Ctrl+/(Mac:CMD+/)

19.Jupyter Notebook中使用Markdown

  • 在命令模式中,按M即可进入到Markdown编辑模式

  • 使用Markdown语法可以在代码间穿插格式化的文本作为说明文字或笔记

  • Markdown基本语法:标题和缩进

  • 效果如下图所示

  • 可以查看文件中的目录(大纲)

20.切换JupyterNotebook启动路径

  • 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编辑器

 21.Jupyter Notebook快捷键

22.对比中日两国的GDP变化曲线

# 导包并加载数据
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()

23.对比中美日三国GDP变化曲线

# 分别查询中国、美国、日本三国的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()

24.解决中文不能在图表中正常显示的问题

# 按条件选取数据
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 # 解决负号不显示问题

 25.总结

  • Python Pandas的作用:清洗、处理、分析数据

  • Pandas环境搭建:

    • 安装Anaconda,默认自带Python以及其他相关三方包

    • 使用默认的base虚拟环境启动Jupyter Notebook

26.项目地址 

Python: 66666666666666 - Gitee.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1155488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux C语言进阶-D2字符数组和字符串

字符数组:元素的数据类型为字符类型的数组 char c[10],ch[3][4]; 字符数组的初始化 逐个字符赋值,无\0 在下图中,剩余的会自动添加上\0,而在int中会自动添加0,和NULL其实是一个意思 用字符串常量有\0 字符数组长度计算 下图中&am…

你知道什么是 Ping 吗?

欢迎到我的博客浏览 胤凯 (oyto.github.io) 这次我们来看一下什么是 Ping 操作,以及它有什么用处,并且我们来动手实现一个简易版的 Ping 工具。 Ping 是什么? ​ ping 是一个计算机网络工具,通常用于测试网络连接的可达性和测…

服务器带宽忽然暴增,不停的触发告警

问题: 线上环境,服务器的外网下行带宽达到某个阈值,触发告警,查了下服务器的带宽监控信息,是从某个时间开始突然串上去的,然后监控图形非常有规律,都是每秒达到顶峰后,又立马下去了…

信息系统项目管理师教程 第四版【第9章-项目范围管理-思维导图】

信息系统项目管理师教程 第四版【第9章-项目范围管理-思维导图】 课本里章节里所有蓝色字体的思维导图

2023年云栖大会来啦!!(2022年就已经深受震撼)

2023云栖大会已经开始啦,让我们来回顾回顾去年的云栖大会吧。 云栖大会是中国阿里巴巴集团每年举办的一项技术盛会,前身可追溯到2009年的地方网站峰会,2011年演变为阿里云开发者大会,2015年正式更名为“云栖大会”,并且…

DL Homework 5

目录 习题4-1 对于一个神经元​编辑,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。 习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N1,输入层大小为​编辑,输出层大…

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测 目录 回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.RIME-CNN-SVM霜冰优化算…

[SHCTF 2023 校外赛道] reverse

week1 ez_asm 想不到第1题是个汇编,咱也不知道拿啥能弄成c,不过这题也不难,直接能看懂,关键部分。 取出异或0x1e然后保存,再取出-0xa再保存。 .text:0000000000401566 loc_401566: …

赛宁网安多领域创新成果亮相第五届“纵横”论坛

10月27日,第五届“纵横”网络空间安全创新论坛在安徽合肥举办,来自中央国家机关、地方政府、军队有关单位、高校、科研院所和部分高新技术企业的领导、专家和代表500余人参加。 本届论坛由军事科学院和国防科技大学等单位共同主办,国防科技大…

电脑出现找不到d3dcompiler_43.dll的情况怎么办,分享d3dcompiler_43.dll丢失的办法

在使用电脑时你是不是也遇到过“未找到d3dcompiler_43.dll”的情况?是使用电脑的过程中d3dcompiler_43.dll丢失是一个经常出现问题,是一件大概率的事情,但是对于不了解这个文件的小伙伴而言出现这个问题是一件棘手的事情,那么今天…

postman做接口测试

之前搞自动化接口测试,由于接口的特性,要验证接口返回xml中的数据,所以没找到合适的轮子,就自己用requests造了个轮子,用着也还行,不过就是case管理有些麻烦,近几天又回头看了看postman也可以玩…

悠络客携新品UMind亮相安博会,从深耕商业连锁出发,正式进军ToG、ToC领域

2023年10月25日,第十九届中国国际社会公共安全博览会(CPSE安博会)在深圳会展中心隆重开幕。悠络客作为以公有云为核心的人工智能企业,联合海外事业部以全新面貌亮相展会现场。 本次参展,对悠络客而言有着非同寻常的重要…

【c++|opencv】二、灰度变换和空间滤波---4.高斯滤波

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 1. 高斯滤波 #include <iostream> #include <opencv2/opencv.hpp> #include"Salt.h"using namespace std; using namespace cv;/…

Android 13 Handler详解

1.Handler 简介 Handler 是一套 Android 消息传递机制。在多线程应用场景中&#xff0c;将子线程中需要更新 UI 的操作消息&#xff0c;传递到 UI 主线程&#xff0c;从而实现子线程通知 UI 更新最终实现异步消息处理。说白了是用于线程之间的通信。 Handler主要有4个重要类&a…

对xss-labs靶场的一次XSS攻击

1、首先我们进入靶场&#xff0c;提示我们开始测试 2、我使用AWVS工具进行了先行扫描&#xff0c;发现爆出XSS漏洞 3、然后对症下药 在输入框中输入&#xff1a; <script>alert(document.cookie)</script> 4、进入下一关 5、我们直接执行<script>…

priority_queue 的模拟实现

priority_queue 的底层结构 我们已经学习过栈和队列了&#xff0c;他们都是用一种容器适配出来的。今天我们要学习的 prority_queue 也是一个容器适配器。在 priority_queue 的使用部分我们已经知道想要适配出 priority_queue&#xff0c;这个底层的容器必须有以下接口&#x…

040-第三代软件开发-全新波形抓取算法

第三代软件开发-全新波形抓取算法 文章目录 第三代软件开发-全新波形抓取算法项目介绍全新波形抓取算法代码小解 关键字&#xff1a; Qt、 Qml、 抓波、 截获、 波形 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object …

【错误: 找不到或无法加载主类】回归java运行的本质

【错误: 找不到或无法加载主类】回归java运行的本质 一&#xff0c;背景 当有了idea这种工具后&#xff0c;java的mian方法执行起来是如此简单&#xff0c;很少有人再手动编辑并通过命令行执行了。 同时&#xff0c;在当今Spring Boot盛行的今天&#xff0c;恐怕很少再有人执…

基于SSM的模具制造企业订单跟踪管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

阿里云国际服务器如何申请退款

如果您的服务器配置购买错了&#xff0c;可以通过工单方式申请退款如何发工单&#xff1f; 打开如下链接登录阿里云国际多云管理服务商_Cloud MSP_九河云 (9he.com) 选择一个类目&#xff0c;提交工单&#xff0c;编辑需求内容 退款之前一定记录好当前剩余余额&#xff0c;避免…