美文网首页
pandas DataFrame对象介绍及简单使用

pandas DataFrame对象介绍及简单使用

作者: 采星星的小太阳BavaLI | 来源:发表于2020-04-08 19:32 被阅读0次

DataFrame自我理解:

如果你看到我前面的文章之后,那么接下来的话对于你对pandas DataFrame对象的理解就会更加的深刻和容易了。建议查看我之前所写的博客。

对于Pandas DataFame对象,我自己的理解是,他可以看作是我们的一张表,Excel表,可以这样理解。对于Series与DataFrame来比较的话我们可以把Series看成是DataFrame的一个维度,说白了就是excel表的一列.这是我自己的个人理解,我觉得还是比较直观的。

DataFrame基本使用


首先定义DataFrame对象:

字典定义

在这里我们首先定义了一个字典,然后字典的每一个key 又对应了一个列表,那么当我们调用 pd.DataFrame(data)的时候,pandas会把字典的键作为列索引,每一个值分别作为该列的值

1

series定义

在这里,我们首先利用上面的字典值构造三个series对象,然后以一个列表,元组其实也可以的方式传入,就可以得到了一个DataFrame对象了

2

DataFrame定义的时候有一个columns参数可用来指定列索引,具体请对比frame和frame2

3

既然有列索引,那么也会有行索引,一般在定义的时候,如果我们不指定,那么默认从0开始,但是我们还有一个很方便的函数,可以是我们把DataFrame的某一列变成行索引,下面我们就把frame的color指定成行索引了

4

DataFrame元素的基本行列获取

我们同样也可以使用切片操作来获取指定的行和列,也可以指定步长,具体如下

5

获取某一列的两种方式:

6

获取多列:

7

获取列不支持切片:

8

下面我来说一下index,和用numpy更快创建对象的方法:

index:就是说我们可以自定义行索引

图二,我们使用numpy提供的arange()函数创建一个具有16个元素的数组,然后调用reshape函数将它变成一个4*4的二维数组,因为表是二维的嘛,既然有columns,index,那么我们就自定义两者,得到如下结果

9


访问DateFrame中的元素

我们先来看DateFrame对象的几个常用属性:

columns:获取列索引,返回列表

index:获取行索引,返回列表

values:获取值 返回二维列表

10 11

两个重要函数loc()和iloc()

简单说一嘴,loc()是按照索引来取值,包括行列索引,iloc是按照索引的序号来取值,也是包含行列索引,所以他们都有两个参数,分别对应行和列。简单举例说明:

loc():当只有一个参数的时候默认行

12 13

loc(),第二个代表列索引,默认全部

14

加入第二个参数,并切片,大家要自己多敲代码体会呀

15

iloc(),与loc()基本类似,只不过是他是以index序号为准,举例如下:

16

Dataframe自身查询:

17

Dataframe获取某一列得某一个值:

18

Dataframe的赋值

如果你已经会了取值操作,那么赋值的话就是先取值,然后在改变值的操作,很简单。下面我们新建了一列new=12,那么会导致一列的值全部为12

当然我们还可以给columns和index取一个别名,方便管理查看。

19

新建一列,让它的每一个值都不同,你可以自己手动输入,当然你也可以先创建一个Series然后在创建一列

20

取出单个元素然后赋值:

21

元素关系

isin()函数用来判断DataFrame对象里面是否存在相应的元素,有的话返回True,否则返回False,与Series一样,要查看满足条件的元素,直接加一个括号即可,其实都很相识的

22


删除一列

我们可以使用del来删除我们不需要的列

23


过滤

利用bool过滤出我们所需要的值嵌套字典生成DataFrame

24


嵌套字典生成DataFrame

我们可以使用嵌套字典来生成DataFrame,注意看外层及内层字典的键值,pandas很智能的可以判断出键值是否对应,没有的话以NaN代替值

25

DataFrame转置

26


索引对象

Series和DataFrame都很好的整合了索引,索引对象很重要,利用好他可以给我们带来很多便利。

idxmin():按照ASCII码来比较,选择最小的索引

idxmax():按照ASCII码来比较,选择最大的索引

26

有时候我们还有一个需求,那就是要判断index是否有重复,那么我们可以调用index.is_unique查看结果

27

其它索引函数

使用reindex()改变索引,在对象创建后,我们不能直接修改索引,他是不可一直接修改的,但pandas也给我们提供了一些修改索引的函数。

28

redex() method参数

29

redex()  range(6)参数是产生了(0-5)来做索引的值

redex()还支持同时修改行列索引

30

Drop()删除

Serie与Drop()

31

Dataframe与drop()

axis=0,删除行

axis= 1删除列

32

算术和数据对齐

用一句话来说就是pandas会使用NaN来对齐我们在运算,操作过程中不能一一匹配的数据,

series数据对齐

33

DataFrame数据对齐

34

DataFrame对象之间除了直接使用诸如+来进行加运算,还提供了一些一致的函数

35

DataFrame对象与series运算

例子中每一行对应相减

36 37

总结:

感觉写了好多,这里只是一个入门,希望对大家有帮助。如有错误,请指正,谢谢,有帮助的可以点赞支持一下

相关文章

网友评论

      本文标题:pandas DataFrame对象介绍及简单使用

      本文链接:https://www.haomeiwen.com/subject/kywtmhtx.html