-
pandas数据结构
-
Series
:一种一维第数组型对象,包含了一个值序列,并且包含了一个数据标签,称为索引。-
创建一个最简单的Series(S一定要大写):
image.png -
访问Series中的值或索引:
obj.values
,obj.index
-
创建一个自定义标签的Series:
image.png -
可以做类似numpy风格的操作:
布尔值过滤:obj[obj>0]
与标量相乘:obj*2
应用数学函数:np.exp(obj)
-
如果你已经有数据在Python字典中,你可以用它生成一个Series:
image.png-
你也可以将字典键按照你想要的顺序传递给构造函数,从而使生成的Series符合你的预期:
image.png
上述例子中,由于sdata
中没有键'California'
,故期值不存在,在Series
中表示为NaN
。 -
我们可以使用
image.pngisnull
或notnull
来查询值的缺失:
-
按位置改变Series的索引:
image.png
-
-
-
DataFrame
- DataFrame是一种表示矩阵的数据表,它包含已排序的列集合,每一列都可以有不同类型的数据类型。
-
构建方法最常用的是利用包含等长度列表或Numpy数组的字典来形成DataFrame:
image.png
指定列顺序:
image.png
如果你传入的列不包含在字典中,则结果会出现缺失值。
image.png-
DataFrame中的每一列可以看作Series,可以按照字典型标记或属性那样检索。
image.png -
选取某一行
image.pngloc[]
:
-
修改列,可以赋值为标量值或者值数组(值的长度必须匹配):
image.png
image.png -
将Series赋值给一列时,Series的索引将会按照DataFrame的索引重新排列,并在空缺的地方填充缺失值:
image.png -
如果被赋值的列不存在,将会生成一个新列:
image.png -
del
:删除某一列。
del frame['eastern']
-
另一种构建方法,将嵌套字典赋值给DataFrame。Pandas会将字典的键作为列,内部字典的键作为行索引。
image.png -
可以使用Numpy中的语法进行转置。
image.png
-
-
索引对象
image.png
你所使用的任意数组或标签序列都可以在内部转换为索引对象。
- 生成
Index
:
image.png - 与Python字典不同,pandas索引对象可以包含重复标签。
- 一些索引对象的方法和属性见书P135。
- 生成
-
重建索引
-
如果索引值之前不存在,则会引入缺失值。
image.png - 重建索引时可以使用一些方法,例如
ffill
,将缺失值向前填充。
image.png - 可以改变行索引,也可以改变列索引,使用
columns
关键字:
image.png - 使用loc进行更为简介的标签索引,大家更倾向于这种方式:
frame.loc[['a','b','c','d'],states]]
,注意最外层是[]
。 - 一些
reindex
的方法见书P137。
-
-
轴向 上删除条目
-
drop
方法:
image.png-
也可以从列中删除值
image.png
-
-
-
索引、选择与过滤
-
Series的索引与Numpy数组索引的功能类似,但是Series的索引可以不仅仅是整数。
image.png
obj['b'],
obj[1]
,obj[2:3]
(返回第第三个),obj[obj<2]
。
另外Python中切片是不包含尾部的,而Series的切片则不同:obj['b':'c']
,输出标签为b到c的之间的数据,包含b和c。
-
使用
loc
和iloc
选择数据
loc
:使用轴标签来选择数据。
iloc
:使用整数标签来选择数据。 -
一些DataFrame的其他索引方式见书P144。
-
-
算数和数据对其
标签重叠的数据相加,标签不重合的数据补缺失值。-
对于Series:
image.png -
对于DataFrame:
image.png -
使用填充值的算数方法
image.png
可以使用fill_value
参数设定不重叠的Nan值。
- 一些其他灵活算数方法见书P148。
-
-
DataFrame和Series之间的操作
- 先来看Numpy中的多维
arr
与一维arr
之间的操作:
当我们从arr
中减去arr[0]
时,减法在每一行都进行了操作,这就是广播机制。
image.png -
Frame与Series相减:
image.png
- 先来看Numpy中的多维
-
函数应用和映射
Numpy的通用函数对pandas对象也有效:
image.png -
排序和排名
-
sort_index
方法:对index
进行排序。
在Series中:
image.png
在DataFrame中:
image.png-
sort_values
方法:对值进行排序:
对于Series:
image.png
对于DataFrame,可以选择一列或多列进行排序:
image.png -
-
排名
image.pngrank
以下默认方法不会打破平级关系,比如两个7都是排6.5名。
可以通过添加各种方法打破平级关系或实现其他形式的排名,见书P155。 -
含有重复标签的轴索引
如果含有重复的轴标签,对重复的轴标签进行索引时会返回多个值。 -
相关性和协方差
-
corr
方法求相关性。 -
cov
方法求协方差。 -
corrwith
方法求一列与多列之间的相关性。
-
网友评论