Pandas 库之 DataFrame

人工智能109

How to use DataFrame ?

简介 分布式数据集(常用于数据分析)
创建 DataFrame
查看与筛选数据行列选取
DataFrame 数据操作增删改

一、About DataFrame

DataFrame 是 Python 中 Pandas 库中的一种数据结构,是一种二维表。它类似 excel,或许说它可能有点像 matlab 的矩阵,但是 matlab 的矩阵只能放数值型值(当然 matlab 也可以用 cell 存放多类型数据),DataFrame 的单元格可以存放数值、字符串等,这就和 excel 表很像。

同时 DataFrame 可以设置列名 columns 与行名 index,可以通过像 matlab 一样通过位置获取数据也可以通过列名和行名定位。

二、创建 DataFrame

版本声明:Python 3.6.7

如果还没安装直接在 cmd 里 pip 安装:

1、直接创建

可以直接使用 pandas 的 DataFrame 函数创建,比如随机创建一个 4*4 的 DataFrame:

np.random.randn(4,4):存放在DataFrame里的数据

index=list('ABCD'):行名(或者可以说是索引)

columns=list('ABCD'):列名

后两个参数可以使用 list 输入,但是注意,这个list的长度要和 DataFrame 的大小匹配,不然会报错。当然,这两个参数是可选的,你可以选择不设置。而且发现,这两个list是可以一样的,但是每行每列的名字在 index 或 columns 里要是唯一的。

小数据量,手工键入数据:

2、使用字典创建

使用 DataFrame 方法,但是字典的每个 key 的 value 代表一列,而 key 是这一列的列名:

三、查看与筛选数据

1、查看列的数据类型:使用 dtypes 方法可以查看各列的数据类型

2、查看DataFrame的头尾

使用 head 可以查看前几行的数据,默认的是前5行,不过也可以自己设置;

使用 tail 可以查看后几行的数据,默认也是5行,参数可以自己设置;

3、查看行名与列名

使用 index 查看行名,columns 查看列名

4、查看数据值

使用 values 可以查看 DataFrame 里的数据值,返回的是一个数组:

使用 loc 或者 iloc (切片)查看数据值,区别是 loc 是根据行名,iloc 是根据数字索引:

①loc:(location),works on labels in the index,只能使用字符型标签来索引数据,不能使用数字来索引数据,不过有特殊情况,当数据框dataframe的行标签或者列标签为数字,loc就可以来其来索引。

②iloc:(i=integer),works on the positions in the index (so it only takes integers),主要使用数字来索引数据,而不能使用字符型的标签来索引数据。

5、查看行列数:使用 shape 查看行列数,注意:参数为0 表示查看行数,参数为1 表示查看列数。

6、DataFrame 数据格式的行列选取

四、DataFrame 数据操作

1、转置:直接字母T,这就有点 线性代数 的味道了哈

2、描述性统计

使用 describe 方法可以对数据根据"列"进行描述性统计:

由上可以看出,如果有的列是非数值型的,那么就跳过不会进行统计;如果想对行进行描述性统计,可以灵活处理一下:转置后进行 describe。

3、计算

使用 sum 默认对每"列"求和,sum(1) 为对每"行"求和:

数乘运算使用 apply(应用 lambda 实现):

如果元素是字符串,则会把字符串再重复一遍。

乘方运算跟 matlab 类似,直接使用两个 *,乘方运算如果有元素是字符串的话,就会报错。

4、增删改

5、合并拼接

使用 join可以将两个 DataFrame 合并,但只根据行列名合并,并且以作用的那个 DataFrame 的为基准。

如果要合并多个 Dataframe,可以用 list 把几个 Dataframe 装起来,然后使用 concat转化为一个新的 Dataframe。

Original: https://www.cnblogs.com/geaozhang/p/11335960.html
Author: geaozhang
Title: Pandas 库之 DataFrame