一、基础

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库中的基本数据类型及含义如下表所示

数据类型 含 义
Series pandas库中的一维数组
DataFrame pandas库中的二维数组

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 可以对每一行除法运算,结果如下图所示

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

  1. pandas预处理案例——数据分析师招聘数据清洗实战

    数据分析师招聘数据清洗实战 数据导入并查看 重复数据处理 异常值处理 缺失值处理 数据是数据分析师的招聘薪资,主要内容是进行数据读取,数据概述,数据清洗和整理 数据获取:链接:https://pan. ...

  2. python pandas_Python库Pandas数据可视化实战案例

    点击上方"爱好Python的胡同学",选择"星标"公众号 每晚八点,Python干货,不见不散! 数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之 ...

  3. 这就是数据分析之Pandas与数据清洗

    总括 在数据分析工作中,Pandas 的使用频率是很高的,一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便.另一方面,如果我们日常的数据 ...

  4. 《Python Spark 2.0 Hadoop机器学习与大数据实战_林大贵(著)》pdf

    <Python+Spark 2.0+Hadoop机器学习与大数据实战> 五星好评+强烈推荐的一本书,虽然内容可能没有很深入,但作者非常用心的把每一步操作详细的列出来并给出说明,让我们跟着做 ...

  5. Python大数据分析实战:豆瓣电影Top250中的最佳导演是谁?

    在之前写的一篇文中中,已经采用urllib和BeautifulSoup的方式抓取了豆瓣电影TOP250的导演.编剧.演员.上映时间和地区.语言.短评数.影评数.多少人想看.多少人看过等22个字段. 接 ...

  6. Python数据清洗实战案例--拉勾招聘数据清洗

    Python数据清洗实战案例–拉勾招聘数据清洗 (本篇博客主要介绍个人对一份数据的清洗代码和清洗效果) 主要涉及应用的库是numpy.pandas.matplotlib,话不多说,直接上代码 #全部行 ...

  7. Python库Pandas数据可视化实战案例

    >关注公众号:大数据技术派,回复`资料`,领取`1024G`资料. 数据可视化可以让我们很直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,可以帮助我们更好的给他人解释现象,做到一图胜千文的 ...

  8. 工资8000以下的程序员注意了:《零coding数据大屏实战宝典.pdf》

    马云曾说:"整个世界将变成数据,这还只是数据时代的开始.新浪潮即将来临,很多就业机会将被夺走.有些人会赶上潮流,变得富有和成功.但是对那些落后的人,未来将是痛苦的. 大数据从2013年一路发 ...

  9. 《R与Hadoop大数据分析实战》一2.6 小结

    本节书摘来自华章出版社<R与Hadoop大数据分析实战>一书中的第2章,第2.6节,作者 (印)Vignesh Prajapati,更多章节内容可以访问云栖社区"华章计算机&qu ...

最新文章

  1. Lucene+Tika 文件索引的创建与搜索
  2. 东方智慧和西方智慧的比较
  3. iOS定时器NSTimer的使用方法
  4. 章节十一、1-Junit介绍
  5. 完整BBS系统开发流程及结果展示
  6. KeepLive for Android 安卓保活组件
  7. 求最大李雅普诺夫指数(Largest Lyapunov Exponents,LLE)的 Rosenstein 算法
  8. Laravel 使用百度地图实现地理位置转经纬度
  9. word文档左下方竟然出现无法删除的小横线???
  10. 电脑上如何登录华为云服务器地址,华为手机上的云服务备忘录如何在电脑上登录?...
  11. 计算机听觉应用,计算机音乐系统和音乐听觉训练
  12. 生猪出售 matlab,数学建模论文-肥猪最佳销售时机问题.doc
  13. iOS开发 关于iPhone X 的适配
  14. springmvc500错误
  15. MessageBox.Show()的使用
  16. matlab butter()函数解析
  17. opencv各版本官方下载地址
  18. Ucloud直播技术细节
  19. 商业银行个人客户价值指标体系
  20. 应用于Web的TWAIN扫描识别软件-Dynamic Web TWAIN

热门文章

  1. C++深拷贝与浅拷贝的区别-简单易懂
  2. android studio manifestplaceholders,Android Studio - 第四十五期 Gradle manifestPlaceholders
  3. 如何使用计算机键盘,使用键盘
  4. 【EOS42章经】 第1章: EOS账号和钱包
  5. Javaweb和jsp的区别?
  6. 一文详解COINDAO是什么?
  7. 优化加载百度地图中的各种省份的js文件
  8. 中国电子商务面临信用危机
  9. springboot2.0+thymeleaf技术-入门
  10. 微软word的多级列表的bug的解决办法和吐槽--续