[python]14、五万字详细讲解pandas的所有功能和用法以及安装jupyter
目录
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
今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ... 今天爱分享给大家带来isdigit().isdecimal()和isnumeric python中区别[详细讲解],希望能够帮助到大家. 1.函数介绍 isdecimal(...) | S.isdec ... 目录 简介 1 技术介绍 1.1 个人博客功能 1.2 技术组合 1.3 工具与坏境 2 项目的环境配置 2.1 vue的环境配置 2.2 解决跨域问题 2.3 关于图标的获取 3 前端技术 3.1 ... 本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ... 前段时间用C语言做了个字符版的推箱子,着实是比较简陋.正好最近用到了Python,然后想着用Python做一个图形界面的推箱子.这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找 ... python 切片 a = "同伙砍人,好可怕,掏出耳机听场歌剧压压惊." # 0 1 2 3 4 5 6 7 8 9 1011121314151617181920 print(a ... 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bookssea/article/det ... 不管你是学的哪种语言,都需要用到注释这个功能,只要是注释的内容都不会被执行,注释在编写代码的时候时常会出现,对于程序员来说会使用注释也是相当重要的.那么接下来就从三个方面来讲解Python注释,分别是 ... 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于凌晨安全,作者 MoLing 1. 爬虫就是模拟浏览器抓取东西,爬虫 ...[python]14、五万字详细讲解pandas的所有功能和用法以及安装jupyter相关推荐
最新文章
热门文章