Pandas大数据清洗实战之一:安装与初识

一、基础

1、简介

pandas是Python中的一个数据分析和清洗的库,基于numpy构建的,在其中包含了大量的标准数据模型,提供了高效操作大型数据集所需要的工具。最早呢是被作为金融数据分析工具开发出来的,现在已经广泛应用于大数据分析的各个领域。

2、安装与使用

cmd中直接输入如下命令:

pip install pandas

安装完成后,在命令行中输入“pip list”,可查看pandas库是否安装,如下图
在这里插入图片描述

按住那pandas库后,就可以在Python中调用该库实现数据的分析与清洗了

3、pandas的使用

要使用pandas,可直接在Python命令行中输入如下命令

import pandas as pd
s=pd.Series()
s

可得到如下结果

Series([],dtype:float64)

结果如下图所示
在这里插入图片描述

在引入pandas库时候,可以直接导入 import pandas库,在后续代码中将该库简写成“pd:as pd”

二、pandas语法与使用

pandas库中有两个最基本的数据类型:Series和DataFrame。Series表示以为数组,与numpy中的一维array很相像,DataFrame代表二维数组,也可以理解成Series的容器
pandas库中的基本数据类型及含义如下表所示

数据类型含 义
Seriespandas库中的一维数组
DataFramepandas库中的二维数组

1、Series类型

1.series的创建和选择
Series能够保存任何类型的数据,比如整数、浮点型、字符串等等一维标记数据,并且每个数据上都有自己的索引,在pandas库中仅由一组数据就可以创建最简单的Series

(1)创建Series

执行如下代码:

import pandas as pd
s=pd.Series([1,2,3,4])
s

该语句创建了一维数组,结果如下图所示
在这里插入图片描述
从图中可以看出,Series数组的表现形式为:索引在左侧,从0开始标记,值在右侧,用户自定义,并且用户可以通过Series中的index属性为数据值定义标记的索引

(2)创建Series并定义索引
执行如下代码:

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s

上述语句为用index为每个数据值创建了自定义的索引,运行得到如下结果
在这里插入图片描述
也可以只显示索引,直接运行命令:s.index 即可。

2.索引的选择

在pandas中,用户可以通过索引的方式选择Series中的某个值

(1)选择Series中的某个值

执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s['a']

上述语句使用s[‘a’]选择了某一个索引值,运行得到如下结果
在这里插入图片描述

(2)选择Series中的多个值
执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s[['b','c']]

上述语句使用s[[‘b’,‘c’]]选择了多个索引值,运行得到如下结果
在这里插入图片描述

(3)选择Series中表达式的值
执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s[s>3]

上述语句使用s[s>3]选择了大于3的数据,运行得到如下结果
在这里插入图片描述
3.Series中的数据操作
在pandas库中除了可以创建和选择Series外,还可以对Series进行各种数据操作,比如加法、乘法、布尔型运算

(1)Series中的加法运算
执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s+3

上述语句将所有数据都自增3,运行得到如下结果
在这里插入图片描述
(2)Series中的乘法运算
执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
s*3

上述语句将所有数据都乘以3,运行得到如下结果
在这里插入图片描述
(3)Series中的布尔运算
执行如下代码

import pandas as pd
s=pd.Series([1,2,3,4],index=['a','b','c','d'])
'b' in s
'w' in s

上述语句判断数组中是否存在b或者w的索引,运行得到如下结果
在这里插入图片描述
从图中可以看出,b存在于该数组中,因此显示True,w不存在,因此显示False

4.Series中数组的数据操作
此外,在pandas库中除了可以对单个数组进行数据操作,还可以对多个数组进行相同的操作

(1)Series中的数组的加法运算
执行如下代码

import pandas as pd
s1=pd.Series([1,2,3,4])
s2=pd.Series([5,6,7,8])
s1+s2

上述语句进行两个数组加法运算,按照索引对应位进行相加,运行得到如下结果
在这里插入图片描述

(2)Series中的数组的乘法运算
执行如下代码

import pandas as pd
s1=pd.Series([1,2,3,4])
s2=pd.Series([5,6,7,8])
s1*s2

上述语句进行两个数组乘法运算,按照索引对应位进行相加,运行得到如下结果
在这里插入图片描述
(3)Series中的数组自动补齐不同索引运算
执行如下代码

import pandas as pd
s1=pd.Series([1,2,3,4],index=['a','b','c','d'])
s2=pd.Series([5,6,7,8],index=['b','c','d','a'])
s1+s2

上述语句进行两个数组加法运算,并且可以自动补齐不同索引,运行得到如下结果
在这里插入图片描述
从上图可以看出,Series可以将相同索引的数据自动对应,然后进行数据运算

(4)Series中的缺失值
执行如下代码

import pandas as pd
s1=pd.Series([1,2,3,4],index=['a','b','c','d'])
s2=pd.Series([6,7,8],index=['b','c','d'])
s1+s2

上述语句进行两个数组加法运算,但是由于两个数组对应的数值不匹配,在s2中缺少索引a及其相对应的数值,因此会出现缺失值,运行得到如下结果
在这里插入图片描述

2、DataFrame类型

DataFrame是一个表格型的数据类型,含有一组有序的列,每列可以是不同类型,比如数值、字符串等。DataFrame既有行索引,又有列索引,因此可以看成是Series组成的字典。

1.DataFrame的创建
创建方法有很多,最常见的是传入一个由等长列表组成的字典

(1)直接创建DataFrame数据类型
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
frame=pd.DataFrame(data)
frame

上述语句通过引入pandas库构建了一个DataFrame数据类型,并且形成了有序的排列,运行得到如下结果
在这里插入图片描述
(2)创建DataFrame数据类型,并指定列序列
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
frame=pd.DataFrame(data,columns=['year','name'])
frame

上述语句指定了DataFrame数据类型的列序列,将year放在了name列前面,运行得到如下结果
在这里插入图片描述
(3)使用嵌套字典创建一个DataFrame
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
pop={'Tom':{1990},'Jerry':{1995}}
frame=pd.DataFrame(pop)
frame

上述语句使用嵌套字典来创建DataFrame,将外层字典的键作为列,比如Tom、Jerry,将内层键作为行索引,比如1990,1995,运行得到如下结果
在这里插入图片描述
2.DataFrame索引与查询
在访问DataFrame类型时,可以使用index、columns、values等属性进行访问行索引、列索引和数据值,返回一个二维的ndarry

(1)使用index访问DataFrame的行索引
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
pop={'Tom':{1990},'Jerry':{1995}}
frame=pd.DataFrame(pop)
frame.index

上述语句使用index属性返回DataFrame中的数据,运行得到如下结果
在这里插入图片描述
(2)使用values访问DataFrame的数据
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
pop={'Tom':{1990},'Jerry':{1995}}
frame=pd.DataFrame(pop)
frame.values

上述语句使用values属性返回DataFrame中的数据,运行得到如下结果
在这里插入图片描述
(3)使用索引方法和属性查询DataFrame
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
frame=pd.DataFrame(data,columns=['year','name'])
frame
'1990' in frame.columns
'name' in frame.columns

上述语句使用’1990’ in frame.columns,‘name’ in frame.columns 查询是否出现列序列的名称,运行得到如下结果
在这里插入图片描述
(4)建立索引并查询
执行如下代码

import pandas as pd
data={
'name':['Tom','Jerry','Tony','Mary'],
'year':['1990','1995','2000','2005']
}
frame=pd.DataFrame(data,columns=['year','name'],index=['one','two','three','four'])
frame
'one' in frame.index
'five' in frame.index

先创建行索引,用 one two three four 来表示,然后查询one和five是否在inde选中,运行得到如下结果
在这里插入图片描述

3、DataFrame数据分析与应用实例

在DataFrame中,数据分析方法包含数据计算、数据扩充、数据索引、数据丢弃、数据排序等,详见下表

方 法含 义
sum()对数据值做加法运算
df-()对数据做减法运算
df*()对数据做乘法法运算
df/()对数据做除法运算
append()对数据的行或者列进行扩充
reindex()重新建立一个新的索引对象
drop()丢弃不需要的数据值
sort_index()对数据值进行排序
idxmin()统计最小值的索引
idxmax()统计最大值的索引
cumsum()对数据值进行累加

1.数据计算
在DataFrame中,最常见的是对每一列做加法、减法、除法、乘法的运算

首先在pandas中建立二维数据并求和
执行如下代码

import pandas as pd
import numpy as np
df=pd.DataFrame([[1,2,3],[4,5,6]],columns=['col1','col2','col3'],index=['a','b'])
df

上述语句首先创建DataFrame类型,创建一个两行三列的数组,并且索引为a和b,运行结果如下图所示

在这里插入图片描述
(1)每一列求和
输入如下命令 df.sum() 可以对每一列求和,结果如下图所示
在这里插入图片描述
(2)每一行求和
输入如下命令 df.sum(1) 可以对每一行求和,结果如下图所示
在这里插入图片描述

(3)每一行做减法
输入如下命令 df-1 可以对每一行减法运算,结果如下图所示
在这里插入图片描述

(4)每一行做乘法
输入如下命令 df*2 可以对每一行乘法运算,结果如下图所示
在这里插入图片描述

(5)每一行做除法
输入如下命令 df/2 可以对每一行除法运算,结果如下图所示
在这里插入图片描述

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值