1、什么是Pandas
当大家谈论到数据分析时,提及最多的语言就是Python和SQL,而Python之所以适合做数据分析,就是因为他有很多强大的第三方库来协助,pandas就是其中之一,它是基于Numpy构建的,正因pandas的出现,让Python语言也成为使用最广泛而且强大的数据分析环境之一。如果说没有pandas的出现,目前的金融数据分析领域还应该是R语言的天下。
2、Pandas能干什么
Pandas的主要功能:
- 具备对应其功能的数据结构DataFrame,Series
- 集成时间序列功能
- 提供丰富的数学运算和操作
- 灵活处理缺失数据
- .....
以上就是pandas能完成的一些基础操作,当然并不完全,下面就来看看pandas到底是怎么用的。
3、怎么用Pandas
安装方法:
pip install pandas
引用方法:
import pandas as pd
3.1、Series
Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。在数据分析的过程中非常常用。
3.1.1、创建方法
第一种:pd.Series([4,5,6,7,8])执行结果:0 41 52 63 74 8dtype: int64# 将数组索引以及数组的值打印出来,索引在左,值在右,由于没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引,取值的时候可以通过索引取值,跟之前学过的数组和列表一样-----------------------------------------------第二种:pd.Series([4,5,6,7,8],index=['a','b','c','d','e'])执行结果:a 4b 5c 6d 7e 8dtype: int64# 自定义索引,index是一个索引列表,里面包含的是字符串,依然可以通过默认索引取值。-----------------------------------------------第三种:pd.Series({"a":1,"b":2})执行结果:a 1b 2dtype: int64# 指定索引-----------------------------------------------第四种:pd.Series(0,index=['a','b','c'])执行结果:a 0b 0c 0dtype: int64# 创建一个值都是0的数组-----------------------------------------------
对于Series,其实我们可以认为它是一个长度固定且有序的字典,因为它的索引和数据是按位置进行匹配的,像我们会使用字典的上下文,就肯定也会使用Series
3.1.2、缺失数据
- dropna() # 过滤掉值为NaN的行
- fill() # 填充缺失数据
- isnull() # 返回布尔数组,缺失值对应为True
- notnull() # 返回布尔数组,缺失值对应为False
# 第一步,创建一个字典,通过Series方式创建一个Series对象st = {"sean":18,"yang":19,"bella":20,"cloud":21}obj = pd.Series(st)obj运行结果:sean 18yang 19bella 20cloud 21dtype: int64------------------------------------------# 第二步a = {'sean','yang','cloud','rocky'} # 定义一个索引变量------------------------------------------#第三步obj1 = pd.Series(st,index=a)obj1 # 将第二步定义的a变量作为索引传入# 运行结果:rocky NaNcloud 21.0sean 18.0yang 19.0dtype: float64# 因为rocky没有出现在st的键中,所以返回的是缺失值
通过上面的代码演示,对于缺失值已经有了一个简单的了解,接下来就来看看如何判断缺失值
1、obj1.isnull() # 是缺失值返回Ture运行结果:rocky Truecloud Falsesean Falseyang Falsedtype: bool2、obj1.notnull() # 不是缺失值返回Ture运行结果:rocky Falsecloud Truesean Trueyang Truedtype: bool3、过滤缺失值 # 布尔型索引obj1[obj1.notnull()]运行结果:cloud 21.0yang 19.0sean 18.0dtype: float64
3.1.3、Series特性
import numpy as npimport pandas as pd
- 从ndarray创建Series:Series(arr)
arr = np.arange(10)sr = pd.Series(arr) # ndarray创建Series
- 与标量(数字)进行运算:sr * 2
srx = sr * 2 # 与标量(数字)进行运算
- 两个Series运算
sr * srx # 两个Series运算
- 布尔值过滤:sr[sr>0]
sr[sr>3] # 布尔值过滤
- 统计函数:mean()、sum()、cumsum()
# 统计函数sr.mean()sr.sum()sr.cumsum()
3.1.4、支持字典的特性
- 从字典创建Series:Series(dic),
dic = {"A":1,"B":2,"C":3,"D":4,"E":5}# 字典创建Seriesdic_arr = pd.Series(dic)
- In运算:'a'in sr、for x in sr
"A" in dic_arr------------------------------for i in dic_arr: print(i)
- 键索引:sr['a'],sr[['a','b','d']]
dic_arr[['A','B']] # 键索引
- 键切片:sr['a':'c']
dic_arr['A':'C'] # 键切片
- 其他函数:get('a',default=0)等
dic_arr.get("A