pandas简明教程

之前我们学了Numpy,他可以提供各种高效的操作,但是面对一些灵活的任务,numpy仍然有限制。所以在其基础上我们又发展了pandas。尤其是他的dataframe,series为数据清理提供了高效的方法。

1、pandas对象简介
pandas对象其实可以看成增强版的numpy,因为它不再只有整数索引,可以自定义行列索引,称为标签,这看起来和我们日常用的Excel表格很相似。我们需要知道pandas最基本的三个数据结构:Dataframe,Series,Index

看一个例子:
data=pd.Series([11,22,33,44]),输出如下:
0 11
1 22
2 33
3 44
可以看出series是一个带索引的一维数组,并且他们是绑定在一起的。我们可以用values获取数组内容,返回的就是一个numpy数组,index返回的是一个类型为pd.index对象,后面再介绍这个。
series显性的索引更强大,在于可以自己设定索引值:
data=pd.Series([11,22,33,44],index=[‘a’,‘b’,‘c’,‘d’])
我们也会发现,他和字典键值对应很相似,但是他比字典高效,原因和之前所的numpy一样,我们也可以用字典来创建series:
pd.Series({‘a’:0,‘b’:2,‘c’:3})

Dataframe就是一个有行列标签的二维数组。
Dataframe相比于series多了一个列标签,我们可以用df.columns获取列标签
具体索引操作有loc,iloc,ix,大家可以自己探索。
多级索引大家也可以自己尝试,还有numpy通用函数对pandas对象也适用。

2、pandas处理缺失值
在pandas中,我们经常用None、Nan表示缺失值,前者是一个object对象,后者是一种特殊的浮点数,通常二者可以替代。

df.isnull():发现缺失值,缺失值为True,df.notnull()相反
df.dropna():剔除缺失值,对于dataframe来说,不加参数剔除整行,all参数剔除全是缺失值的行,thresh可以设置缺失值的个数进行剔除
df.fillna():填充缺失值

3、数据合并操作concat和append

我们在处理数据时,经常会遇到数据存在不同的文件或表格中,因此我们需要把他们合并在一起进行处理分析。还有更复杂的join和merge操作。
(在默认情况下,我们是行合并,也就是行数增加,将后一个表的数据堆叠到前一个表的后几列,也可以用axis=1进行列合并,下面说的都是默认的行合并)
在concat操作时,我们可能会遇到两个表部分索引相同,部分不同,我们可以设置合并形式join,join默认为outer,代表并集合并,缺失值会用Nan表示,inner代表交集合并,我们也可以用join_axes(参数),参数是索引对象的列表,显示指定合并后的列索引。
append方法如下
df1.append(df2) # 相当于pd.concat([df1, df2])
append方法会创建一个副本,不会就地修改,所以当多次append操作时,开销较大,最好创建一个dataframe列表,用concat一次性完成所有合并.

内存式数据合并join和merge可以实现一对一,多对一,多对多连接,具体规则大家用的时候可以自己查看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值