目录

1、安装jupyter

1.1、启用jupyter

2、 pandas介绍

2.1、pip3和pip的区别

2.2、pip或者pip3换源

2.2.1、临时修改

2.2.2、永久修改

2.2.3、国内其他pip源

3、Pandas数据结构

3.1、Series

3.1.1、 仅有数据列表即可产生最简单的Series

3.1.2、创建一个具有标签索引的Series

3.1.3、使用python字典创建Series

3.1.4、 根据标签索引查询数据

3.2、DataFrame

3.2.1、根据多个字典序列创建dataframe

3.2.2、从文件、mysql中读取创建dataframe

4、pandas的基本功能(pandas命令总结)

4.1、命令执行

4.2、查看信息类函数

4.3、数据统计类函数

5、Pandas查询选取数据

5.1、Pandas查询数据的几种方法

5.2、Pandas使用df.loc查询数据的方法

5.2.1、df[]

5.2.2、df.loc方法查询

5.2.3、df.iloc方法查询

6、Pandas的数据转换函数map、apply、applymap  ⭐⭐⭐

6.1、map用于Series值的转化

6.1.1、方法1:Series.map(dict)

6.1.2、方法2:Series.map(function)

6.2、apply用于Series和DataFrame的转换

6.2.1、Series.apply(function)

6.2.2、DataFrame.apply(function)

6.3、applymap用于DataFrame所有值的转换

7、Pandas怎样新增数据列?

7.1、直接赋值的方法

7.2、df.apply方法

7.3、df.assign方法

7.4、按条件选择分组分别赋值

8、Pandas对缺失值的处理

8.1、读取excel的时候,忽略前几个行

8.2、检测空值

8.3、删除掉全是空值的列

8.4、删除掉全是空值的行

8.5、将分数列为空的填充为0分

8.6、将姓名的缺失值填充

8.7、将清洗好的excel保存

9、Pandas数据排序

9.1、读取数据

9.2、Series的排序

9.3、DataFrame的排序

9.3.1、单排序

9.3.2、多列排序

10、Pandas怎样实现DataFrame的Merge

10.1、理解merge时数量的对齐关系

10.1.1、one-to-one 一对一关系的merge

10.1.2、one-to-many 一对多关系的merge

10.1.3、many-to-many 多对多关系的merge

10.2、理解left join、right join、inner join、outer join的区别

10.2.1、inner join,默认为这个

10.2.2、left join

10.2.3、right join

10.2.4、outer join

10.3、如果出现非Key的字段重名怎么办

11、Pandas实现数据的合并concat

11.1、使用pandas.concat合并数据

11.1.1、默认的concat,参数为axis=0、join=outer、ignore_index=False

11.1.2、使用ignore_index=True可以忽略原来的索引

11.1.3、使用join=inner过滤掉不匹配的列

11.1.4、使用axis=1相当于添加新列

11.2、使用DataFrame.append按行合并数据

11.2.1、给1个dataframe添加另一个dataframe

11.2.2、忽略原来的索引ignore_index=True

11.2.3、可以一行一行的给DataFrame添加数据

11.3、merge和concat的区别

12、Pandas怎样实现groupby分组统计

12.1、分组使用聚合函数做数据统计

12.1.1、单个列groupby,查询所有数据列的统计

12.1.2、多个列groupby,查询所有数据列的统计

12.1.3、 同时查看多种数据统计

12.1.4、 查看单列的结果数据统计

12.1.5、不同列使用不同的聚合函数

12.2、遍历groupby的结果理解执行流程

12.2.1、遍历单个列聚合的分组

12.3、遍历多个列聚合的分组

12.4、实例分组探索天气数据

12.4.1、 查看每个月的最高温度

12.4.2、查看每个月的最高温度、最低温度、平均空气质量指数

13、Pandas处理日期数据

13.1、读取天气数据到dataframe

13.2、将日期列转换成pandas的日期

13.3、方便的对DatetimeIndex进行查询

13.4、生成日期范围

13.5、方便的获取周、月、季度

13.6、统计每周、每月、每个季度的最高温度

13.6.1、统计每周的数据

13.6.2、统计每个月的数据

13.6.3、统计每个季度的数据

13.7、python中时间日期格式化符号


思维导图:

准备工作:

链接:https://pan.baidu.com/s/1njXR5DK1REh5xqSMMrRUWw 
提取码:nlxx

下面的文件都需要用到这个文件夹

1、安装jupyter

在windows里使用"win+r",弹窗出来之后敲击"cmd",输入"pip install jupyter"就能够安装了。若是使用的是国外源且下载速度较慢的话,我们可以使用"pip install -i + 国内源 + jupyter",来切换国内源,这样的话,下载速度就比较快了。

1.1、启用jupyter

我们需要下载最上边提供的链接文件,并且在这个文件里"Git Bash Here"

进入Git之后,输入下面的内容

$ jupyter notebook

执行上边的代码之后,会弹出一个窗口,然后执行就会得到下边的内容

2、 pandas介绍

python数据分析三剑客:numpy、pandas、Matplotlib

NumPy(Numerical Python):Python语言的一个扩展程序库,支持大量的维度数据与矩阵运算,针对数组提供大量的数学函数库 Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。 Matplotlib是一个python绘图包

pandas安装: 1、下载使用Python类库集成安装包:anaconda https://www.anaconda.com 当今最流行的Python数据分析发行版 已经安装了数据分析需要的几乎所有的类库

2、pip3 install pandas

本课程演示方式 使用jupyter Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 安装: pip3 install jupyter(需要python3.3或更高版本,或python2.7) 运行: jupyter notebook

2.1、pip3和pip的区别

使用pip install XXX
新安装的库会放在这个目录下面
python2.7/site-packages
使用pip3 install XXX
新安装的库会放在这个目录下面
python3.6/site-packages
如果使用python3执行程序,那么就不能import python2.7/site-packages中的库
那么问题来了,我没有py2.7啊
经过实践发现应该是这样的,应该是将包安装在路径里面第一个检索到的pip系列软件在的地方。

由图可以看到,我在一个没有pip的地方pip3了selenium包,所以,它自动检索,将包安装在了pip3第一次出现的地方。 c:\users\challenger\appdata\local\programs\python\python36\lib\site-packages
而且你用pip show是看不到相关信息的,只有pip3 show才行。
而在使用 pip 安装后


大家可以看到,安装位置已经变成:Location: d:\program\anaconda\envs\python36fordrl\lib\site-packages
因此,这也提示我们在使用pip包安装的时候,应该想好用哪个命令
原理
这个是我想起c语言里面 include“”和inluce<>的异同,一个首先检索当前路径是否有相关文件,一个直接进path环境变量里的库检索文件。
而这里也是如此,如果环境里有相关函数则直接使用,没有则到path路径找第一个符合的函数

2.2、pip或者pip3换源

因为国外源下载很慢,所以我们需要换国内源下载

2.2.1、临时修改

# 临时换为清华源下载
pip3 install  库名 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2.2、永久修改

首先在当前用户目录下建立文件夹.pip,然后在文件夹中创建pip.conf文件,再将源地址加进去即可。

mkdir ~/.pip
vim ~/.pip/pip.conf
# 然后将下面这两行复制进去就好了
[global]
index-url = https://mirrors.aliyun.com/pypi/simple

注意:不管你用的是pip3还是pip,方法都是一样的,都是创建pip文件夹。

2.2.3、国内其他pip源

  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
  • 阿里云:http://mirrors.aliyun.com/pypi/simple/
  • 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  • 华中理工大学:http://pypi.hustunique.com/
  • 山东理工大学:http://pypi.sdutlinux.org/
  • 豆瓣:http://pypi.douban.com/simple/

3、Pandas数据结构

3.1、Series

Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。Seriers的交互式显示的字符串表示形式是索引在左边,值在右边。 类似一个有序的字典。

3.1.1、 仅有数据列表即可产生最简单的Series

>>> import pandas as pd
>>> s1 = pd.Series([1,5,2,7,'a'])
>>> s1
0    1
1    5
2    2
3    7
4    a
dtype: object
#查看每列数据类型,object为通用数据类型,一般某列中有多种数据类型,或者全为str,则类型为object。默认int、float类型的位数为操作系统位数。
########################
>>> s1 = pd.Series([1,5,2,7])
>>> s1
0    1
1    5
2    2
3    7
dtype: int64
######################
# 获得索引
>>> s1.index
RangeIndex(start=0, stop=4, step=1)
######################
# 获得数据
>>> s1.values
array([1, 5, 2, 7])
>>> s1[0]
1
>>> s1[1]
5

改变s1中的一些类型,会强制改变总的数据类型变为一致的。所以Series的数据类型是统一的。

3.1.2、创建一个具有标签索引的Series

>>> s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])
>>> s2
d      1
b      a
a    5.2
c      7
dtype: object
>>> s2.index
Index(['d', 'b', 'a', 'c'], dtype='object')# 可以重复标签
>>> s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','a'])
>>> s2
d      1
b      a
a    5.2
a      7
dtype: object

3.1.3、使用python字典创建Series

类似Python的字典dict

>>> sdata={"a":35000,"b":7200,"c":16000,"d":5000}
>>> sdata
{'a': 35000, 'b': 7200, 'c': 16000, 'd': 5000}
>>> s3 = pd.Series(sdata)
>>> s3
a    35000
b     7200
c    16000
d     5000
dtype: int64

3.1.4、 根据标签索引查询数据

>>> s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])
>>> s2
d      1
b      a
a    5.2
c      7
dtype: object
>>> s2["a"]
5.2
>>> type(s2["a"])
<class 'float'>>>> s2[["b","a"]]
b      a
a    5.2
dtype: object
>>> type(s2[["b","a"]])
<class 'pandas.core.series.Series'>

3.2、DataFrame

DataFrame是一个表格型的数据结构

  • 每列可以是不同的值类型(数值、字符串、布尔值等)
  • 既有行索引index,也有列索引columns
  • 可以被看做由Series组成的字典

3.2.1、根据多个字典序列创建dataframe

>>> data={
...         'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
...         'year':[2000,2001,2002,2001,2002],
...         'pop':[1.5,1.7,3.6,2.4,2.9]
...     }
>>> df = pd.DataFrame(data)
>>> dfstate  year  pop
0    Ohio  2000  1.5
1    Ohio  2001  1.7
2    Ohio  2002  3.6
3  Nevada  2001  2.4
4  Nevada  2002  2.9
>>> df.dtypes
state     object
year       int64
pop      float64
dtype: object
>>> df.columns  # 查看有几个列
Index(['state', 'year', 'pop'], dtype='object')
>>> df.index
RangeIndex(start=0, stop=5, step=1)
>>> df['state']
0      Ohio
1      Ohio
2      Ohio
3    Nevada
4    Nevada
Name: state, dtype: object
>>> df['state'][1]
'Ohio'
>>> df[['state','year']]  # 拿多列的话,要使用"[[]]"state  year
0    Ohio  2000
1    Ohio  2001
2    Ohio  2002
3  Nevada  2001
4  Nevada  2002

3.2.2、从文件、mysql中读取创建dataframe

  • 读取csv、txt文件 --> read_csv()
  • 读取xlsx文件 --> read_excel()
  • 读取mysql数据库 --> read_sql()
  • 从网页读取table -->read_html()
>>> fpath = '/root/linux/script/pass_parameter/datas/read_test.csv'
>>> df = pd.read_csv(fpath)
>>> dfdate   prov    isp    pv    uv
0   2020-04-26  hunan  cmnet  2000  1000
1   2020-04-26  hunan  cmnet  3000  1500
2   2020-04-26  hunan   cmcc  4000  1000
3   2020-04-26  hubei    ctc  2500  1000
4   2020-04-26  hubei   cmcc  2000  1000
5   2020-04-26  hubei    ctc  2100  1600
6   2020-04-27  hunan  cmnet  4000  1700
7   2020-04-27  hunan  cmnet  3200  1500
8   2020-04-27  hunan   cmcc  2800  1600
9   2020-04-27  hubei    ctc  2600  1400
10  2020-04-27  hubei   cmcc  3800  1900
11  2020-04-27  hubei    ctc  2400  1900

[python]14、五万字详细讲解pandas的所有功能和用法以及安装jupyter相关推荐

  1. python isdigit和isnumeric区别_isdigit()、isdecimal()和isnumeric python中区别【详细讲解】...

    今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ...

  2. isnumeric用法python_isdigit()、isdecimal()和isnumeric python中区别【详细讲解】

    今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ...

  3. 2.5万字详细讲解个人网站的开发过程和项目的部署

    目录 简介 1 技术介绍 1.1 个人博客功能 1.2 技术组合 1.3 工具与坏境 2 项目的环境配置 2.1 vue的环境配置 2.2 解决跨域问题 2.3 关于图标的获取 3 前端技术 3.1 ...

  4. 一文详细讲解API网关核心功能和API管理扩展

    本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ...

  5. python推箱子代码详细讲解_Python使用tkinter模块实现推箱子游戏

    前段时间用C语言做了个字符版的推箱子,着实是比较简陋.正好最近用到了Python,然后想着用Python做一个图形界面的推箱子.这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找 ...

  6. python切片习题与详细讲解

    python 切片 a = "同伙砍人,好可怕,掏出耳机听场歌剧压压惊." # 0 1 2 3 4 5 6 7 8 9 1011121314151617181920 print(a ...

  7. Python爬虫史上超详细讲解(零基础入门,老年人都看的懂)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bookssea/article/det ...

  8. Python中注释的详细讲解

    不管你是学的哪种语言,都需要用到注释这个功能,只要是注释的内容都不会被执行,注释在编写代码的时候时常会出现,对于程序员来说会使用注释也是相当重要的.那么接下来就从三个方面来讲解Python注释,分别是 ...

  9. python爬虫详细步骤-Python爬虫入门,详细讲解爬虫过程

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于凌晨安全,作者 MoLing 1. 爬虫就是模拟浏览器抓取东西,爬虫 ...

最新文章

  1. 生产管理要点:快执行、高品质、看板追踪!
  2. 温州大学《机器学习》课程课件(二)(回归)
  3. MVC系列-7.更新
  4. jmeter 加密解密_AES加密的安全问题
  5. No module named ‘win32gui‘ 的解决方法(踩坑之旅)
  6. 如何把html文件转化为mp3,如何将Flash转换为MP3
  7. 无缘晶振匹配电容计算方法
  8. 60905一种六磁子交通系统
  9. MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区
  10. ubuntu端口映射
  11. 2017.7.10日C组模拟赛总结
  12. RocketMQ Message相关命令【实战笔记】
  13. win10 wsl 安装 ubuntu 16.04
  14. 合肥太阳能电池片表面缺陷检测-施努卡
  15. Weka中分类器指标的说明
  16. MuleSoft----初识mulesoft
  17. 力扣 560. 和为 K 的子数组
  18. if与switch的性能比较
  19. 【免费分享】[艾略特波浪理论-20周年纪念版]
  20. Si39333有源 RFID 标签

热门文章

  1. Nearby Service为影音娱乐类APP提供“零”流量极速分享功能
  2. 聊一聊网络营销那些事儿
  3. 小皮(phpstudy)突然报错:nginx: [emerg] CreateFile()的解决办法(亲测有效)
  4. 【Apache POI】Excel操作(三):Excel在浏览器端即Web端写入操作的实现
  5. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个
  6. Single page application(单页面应用)
  7. 狄立克雷函数傅立叶变换0点_你真的理解傅立叶变换吗?
  8. trine2 android,《游戏王决斗链接》三位一体卡盒值得买吗 三位(2)
  9. igh etherlab主站介绍
  10. 提高工作效率的方法_4种提高工作效率的方法