python数据分析模块:numpy、pandas全解

Python015

python数据分析模块:numpy、pandas全解,第1张

一维数组情况:

二维数组情况:

3参数情况:

2参数情况:

1参数情况:

一维情况:

二维情况:

一维情况:

二维情况:

一维情况:

二维情况:第三个参数指定维度

只查看行数、或者列数

逗号隔开两个索引

某些行

某些列

可以看出append()函数在二维数组中添加元素,结果转为了一维数组。

那怎么保持二维数组呢?可以设置axis参数按行或者按列添加

可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。

那么怎么保持在二维添加元素呢? 同样设置axis参数

也分按行和按列删除

标记缺失值: isnan()函数

补充缺失值:

同样axis参数可以指定拼接按行还是按列

2. hstack()函数:以水平堆叠的方式拼接数组

3. vstack()函数:以垂直堆叠的方式拼接数组

第二个参数还可以是数组,指定拆分的位置

hsplit()函数:横向拆成几个数组

vsplit()函数:纵向拆成几个数组

数组与数组之间的运算

数组与数值的运算

可以指定整个数组求和,还是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有两个重要的数据结构对象:Series和DataFrame。

Series是创建一个一维数组对象,会自动生成行标签。

会自动生成行列标签

也可以用字典形式生成数据

在用字典生成数据的基础上,同时指定行标签

例如对下表的数据进行读取

4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。

可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。

可以看出不给出header参数时,该参数默认为0。

header=1时结果如下:

header=None时结果如下:

index_col=0时,第0列为列标签

index_col=0时

usecols=[2]:指定第二列

指定多列

数据如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]

nrows=3时

head()函数中参数为空默认前5行

指定head(3)时如下

numpy模块也是shape

查看特定列的书库类型

特定列数据类型转换

先查看一下所有数据

与单行相比,结果显示的格式不一样了

iloc()挑选:

或者给出区间

挑选数据要么标签,要么索引挑选

或者

或者写成区间

标签挑选

或者索引挑选

先查看一下数据

或者用字典一对一修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]

isin()函数查看表中是否有该值

查看特定列是否有该值

可以看出上述代码并没有替换,那怎么替换呢?

末尾插入一列

指定插入到哪列

axis参数可以指定删除行还是删除列

指定标签删除

指定索引删除

方法三

指定行标签删除

指定索引删除

方法三:

先查看所有数据

info()函数查看数据类型,还可以查看是否有缺失值

isnull()函数查看是否有缺失值

在numpy模块中用isnan()函数

删除有缺失值的行

删除整行都为缺失值的行: 需要指定how参数

不同列的缺失值设置不同的填充值

默认保留第一个重复值所在的行,删除其他重复值所在的行

保留第一个重复值所在的行

保留最后一个重复值所在的行

是重复的就删除

降序如下

参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前

获取产品为单肩包的行数据

获取数量>60的行数据

获取产品为单肩包 且 数量>60 的行数据

获取产品为单肩包 或 数量>60 的行数据

stack()函数转换成树形结构

how参数指定外连接

on参数指定按哪一列合并

concat()函数采用 全连接 的方式,没有的数设置为缺失值

重置行标签

效果与concat()一样

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

获取单列的

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

ta = pd.read_excel(‘相关性分析.xlsx’)

print(data)

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链图片转存中…(img-46g9qgQw-1637655972913)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

这里介绍几个常用的列表操作:

1、添加元素

添加元素使用列表的内置方法append

number = [1, 2, 3, 4]

number.append(5) # number = [1, 2, 3, 4, 5]

number.append([6,7]) # number = [1, 2, 3, 4, 5, [6, 7]]

number.append({'a':'b'}) # number = [1, 2, 3, 4, [6, 7], {'a', :'b'}

可以看到强大的python列表可以嵌套任意类型

2、列表相加

要想连接两个列表,可以使用+号连接

a = [1, 2, 3]

b = [4, 5, 6]

c = a + b # c = [1, 2, 3, 4, 5, 6]

也可以使用列表内置方法extend连接两个列表

a = [1, 2, 3]

b = [4, 5, 6]

a.extend(b) # a = [1, 2, 3, 4, 5, 6]

用+号会创建一个新通对象,使用extend则在原来的对象上面修改

3、列表去重复

列表本身没有去除重复的功能,但是可以借助python的另外一个类型set(help(set)查看)

a = [1, 2, 3, 3,2, 1]

b = list(set(a)) # b = [1, 2, 3]

也可以借助字典类型的内置方法

a = [1, 2, 2, 3, 1, 3]

b = {}.fromkeys(a).keys() # b = [1, 2, 3]