DataFrame自我理解:
如果你看到我前面的文章之后,那么接下来的话对于你对pandas DataFrame对象的理解就会更加的深刻和容易了。建议查看我之前所写的博客。
对于Pandas DataFame对象,我自己的理解是,他可以看作是我们的一张表,Excel表,可以这样理解。对于Series与DataFrame来比较的话我们可以把Series看成是DataFrame的一个维度,说白了就是excel表的一列.这是我自己的个人理解,我觉得还是比较直观的。
DataFrame基本使用
首先定义DataFrame对象:
字典定义
在这里我们首先定义了一个字典,然后字典的每一个key 又对应了一个列表,那么当我们调用 pd.DataFrame(data)的时候,pandas会把字典的键作为列索引,每一个值分别作为该列的值
series定义
在这里,我们首先利用上面的字典值构造三个series对象,然后以一个列表,元组其实也可以的方式传入,就可以得到了一个DataFrame对象了
DataFrame定义的时候有一个columns参数可用来指定列索引,具体请对比frame和frame2
既然有列索引,那么也会有行索引,一般在定义的时候,如果我们不指定,那么默认从0开始,但是我们还有一个很方便的函数,可以是我们把DataFrame的某一列变成行索引,下面我们就把frame的color指定成行索引了
DataFrame元素的基本行列获取
我们同样也可以使用切片操作来获取指定的行和列,也可以指定步长,具体如下
获取某一列的两种方式:
获取多列:
获取列不支持切片:
下面我来说一下index,和用numpy更快创建对象的方法:
index:就是说我们可以自定义行索引
图二,我们使用numpy提供的arange()函数创建一个具有16个元素的数组,然后调用reshape函数将它变成一个4*4的二维数组,因为表是二维的嘛,既然有columns,index,那么我们就自定义两者,得到如下结果
访问DateFrame中的元素
我们先来看DateFrame对象的几个常用属性:
columns:获取列索引,返回列表
index:获取行索引,返回列表
values:获取值 返回二维列表
两个重要函数loc()和iloc()
简单说一嘴,loc()是按照索引来取值,包括行列索引,iloc是按照索引的序号来取值,也是包含行列索引,所以他们都有两个参数,分别对应行和列。简单举例说明:
loc():当只有一个参数的时候默认行
loc(),第二个代表列索引,默认全部
加入第二个参数,并切片,大家要自己多敲代码体会呀
iloc(),与loc()基本类似,只不过是他是以index序号为准,举例如下:
Dataframe自身查询:
Dataframe获取某一列得某一个值:
Dataframe的赋值
如果你已经会了取值操作,那么赋值的话就是先取值,然后在改变值的操作,很简单。下面我们新建了一列new=12,那么会导致一列的值全部为12
当然我们还可以给columns和index取一个别名,方便管理查看。
新建一列,让它的每一个值都不同,你可以自己手动输入,当然你也可以先创建一个Series然后在创建一列
取出单个元素然后赋值:
元素关系
isin()函数用来判断DataFrame对象里面是否存在相应的元素,有的话返回True,否则返回False,与Series一样,要查看满足条件的元素,直接加一个括号即可,其实都很相识的
删除一列
我们可以使用del来删除我们不需要的列
过滤
利用bool过滤出我们所需要的值嵌套字典生成DataFrame
嵌套字典生成DataFrame
我们可以使用嵌套字典来生成DataFrame,注意看外层及内层字典的键值,pandas很智能的可以判断出键值是否对应,没有的话以NaN代替值
DataFrame转置
索引对象
Series和DataFrame都很好的整合了索引,索引对象很重要,利用好他可以给我们带来很多便利。
idxmin():按照ASCII码来比较,选择最小的索引
idxmax():按照ASCII码来比较,选择最大的索引
有时候我们还有一个需求,那就是要判断index是否有重复,那么我们可以调用index.is_unique查看结果
其它索引函数
使用reindex()改变索引,在对象创建后,我们不能直接修改索引,他是不可一直接修改的,但pandas也给我们提供了一些修改索引的函数。
redex() method参数
redex() range(6)参数是产生了(0-5)来做索引的值
redex()还支持同时修改行列索引
Drop()删除
Serie与Drop()
Dataframe与drop()
axis=0,删除行
axis= 1删除列
算术和数据对齐¶
用一句话来说就是pandas会使用NaN来对齐我们在运算,操作过程中不能一一匹配的数据,
series数据对齐
DataFrame数据对齐
DataFrame对象之间除了直接使用诸如+来进行加运算,还提供了一些一致的函数
DataFrame对象与series运算
例子中每一行对应相减
总结:
感觉写了好多,这里只是一个入门,希望对大家有帮助。如有错误,请指正,谢谢,有帮助的可以点赞支持一下