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

目录:

  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 pltdf = 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.rhkb.cn/news/176487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3 React项目Dapp获取智能合约对象

上文Web3 整理React项目 导入Web3 并获取区块链信息中,我们在react搭建的dapp中简单拿到了我们区块链中的账号授权信息 那 我们继续 先终端运行 ganache -d将ganache环境起起来 然后 我们运行 dapp 拿到授权列表 回到上文结束的一个状态 然后 我们发布一下自己的…

【设计模式】第22节:行为型模式之“状态模式”

一、简介 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有分支逻辑法和查表法。该模式允许对象内部状态改变使改变它的行为。 二、适用场景…

「Qt中文教程指南」如何创建基于Qt Widget的应用程序(四)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文描述了如何使用…

如何选一个质量好的超声波清洗机、超声波清洗机推荐

超声波清洗机的品牌这么多,到底该如何选择一个质量好的超声波清洗机呢?其实选购超声波清洗机还是有讲究的,并非说说超声波清洗机越贵就是越好的,入手之前还是需要多看一下参数之类的,不然容易买回来后悔,作…

dash--项目的前端展示简单基础

1.前置工作 创建虚拟环境: sudo apt-get install python3-venv # 安装 python3 -m venv venv # 在本目录下创建venv虚拟环境(也是一个文件夹。如果用不到这个虚拟环境以后就rm -rf venv) source venv/bin/activate # 激活虚拟环境临时使用清华…

基于platform驱动模型完成LED驱动的编写

添加设备树文件信息 myplatform{compatible"hqyj,myplatform";//厂商信息&#xff0c;用于驱动端进行匹配interrupt-parent<&gpiof>; //关联中断父节点interrupts<9 0>; //和中断父节点的关系描述符led1-gpio<&gpioe 10 0>; led2-gpio<…

虚拟化的基础知识

目录 虚拟化基础 虚拟化的概念 虚拟化的特征&#xff08;本质&#xff09; 虚拟机的两大派别 VMM讲解 虚拟化中的一些重要概念 VMM的功能以及分类 虚拟化的架构 寄居虚拟化 裸金属虚拟化 操作系统虚拟化 混合虚拟化 虚拟化的三个方向 虚拟化基础 虚拟化的概念 什…

RecyclerView自定义LayoutManager从0到1实践

此前大部分涉及到 RecyclerView 页面的 LayoutManager基本上用系统提供的 LinearLayoutManager 、GridLayoutManager 就能解决&#xff0c;但在一些特殊场景上还是需要我们自定义 LayoutManager。之前基本上没有自己写过&#xff0c;在网上看各种源码各种文章&#xff0c;刚开始…

ps磨皮插件放在哪个文件夹,ps的磨皮插件在哪打开

s磨皮插件一般是第三方软件&#xff0c;通过安装的方式放在ps的相关文件夹中。但也有一些插件是放置在系统软件目录的&#xff0c;不与ps文件放在一起。本文会给大家具体介绍以上两种不同的情况&#xff0c;方便大家了解ps磨皮插件放在哪个文件夹&#xff0c;ps的磨皮插件在哪打…

Java日志组件之三Log4j2漏洞剖析及重现

一、前言 这一篇我们来介绍一下史上第二严重的安全漏洞是个什么情况&#xff0c;原理是什么&#xff0c;如何重现。 二、Log4j2 Lookup机制 Log4j2 Lookup机制最重要的功能就是提供一个可扩展的方式让你可以添加某些特殊的值到日志中。你调用logger.info(name);这样的语句&a…

Java集合操作集锦

原文链接 Java集合操作集锦 集合是最为常见的容器&#xff0c;在日常工作之中经常用到&#xff0c;一些集合的常规操作以及不同的集合之间的转换&#xff0c;虽然看似是基础中的基础&#xff0c;但实践中会发现并不是那么显而易见的&#xff0c;特别是涉及boxing的时候&#x…

B-5:网络安全事件响应

B-5:网络安全事件响应 任务环境说明: 服务器场景:Server2216(开放链接) 用户名:root密码:123456 1.黑客通过网络攻入本地服务器,通过特殊手段在系统中建立了多个异常进程,找出启动异常进程的脚本,并将其绝对路径作为Flag值提交; 通过nmap扫描我们发现开启了22端口,…

Android底层摸索改BUG(二):Android系统移除预置APP

首先我先提供以下博主博文&#xff0c;对相关知识点可以提供理解、解决、思考的 Android 系统如何预装第三方应用以及常见问题汇集android Android.mk属性说明及预置系统app操作说明系Android 中去除系统原生apk的方法 取消预置APK方法一&#xff1a; 其实就是上面的链接3&a…

1-1 prometheus 概述

一、概述 二、特点 三、核心组件 四、基础架构 4.1 Prometheus 的主要模块包含 4.2 运行逻辑 五、Prometheus 与 Zabbix 的对比 六、总结 一、概述 1. 什么是prometheus? 开源系统监控 和 警报工具包受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Br…

Webpack打包图片-js-vue

文章目录 一、Webpack打包图片1.加载图片资源的准备2.认识asset module type3.asset module type的使用4.url-loader的limit效果 二、babel1.为什么需要babel2.babel命令行的使用3.babel插件的使用4.babel的预设preset5.babel-loader6.babel-preset 三、加载Vue文件1.编写App.v…

PHP连接SQLServer echo输出中文汉字显示乱码解决方法

1、查询结果有中文会显示乱码。 解决方法一&#xff08;较简单&#xff0c;建议使用&#xff09;&#xff1a; 在php文件最开头写上&#xff1a; header(Content-type: text/html; charsetUTF8); // UTF8不行改成GBK试试&#xff0c;与你保存的格式匹配 <?php header(&q…

回归算法|长短期记忆网络LSTM及其优化实现

本期文章将介绍LSTM的原理及其优化实现 序列数据有一个特点&#xff0c;即“没有曾经的过去则不存在当前的现状”&#xff0c;这类数据以时间为纽带&#xff0c;将无数个历史事件串联&#xff0c;构成了当前状态&#xff0c;这种时间构筑起来的事件前后依赖关系称其为时间依赖&…

正则表达式的使用实例

正则表达式的使用实例 1- 表示2- 实例 1- 表示 1, [:digit:] 表示0-9全部十个数字 //等价于 0123456789&#xff0c; 而不等价于[0123456789] 2, [[:digit:]] 表示任意一个数字 \{m,n\} 表示其前面的字符出现最少m次&#xff0c;最多n次的情况 \{3,\} 其前面的字符出…

泛积木-低代码 使用攻略

文档首发于 泛积木-低代码 使用攻略 我们以大纲的方式&#xff08;总体把握&#xff09;讲述如何高效、便捷使用 泛积木-低代码。 权限 首先说下权限&#xff0c;在 系统设置 / 权限设置 菜单内&#xff0c;我们可以新增调整项目内的权限&#xff0c;默认拥有管理员和成员两…

前后端配合实现按钮级操作权限控制

背景 公司项目需要做到按钮级权限限制&#xff0c;至此有了该文&#xff0c;如有错误&#xff0c;请联系博主指出&#xff0c;多多感谢。 角色配置前后端操作 首先最基本的角色配置&#xff0c;配置该类角色有哪些菜单以及那些菜单的哪些按钮权限 菜单及菜单按钮由前端维护&a…