【前言】
本文适合了解过Python,有一定基础的读者。本人写第一篇文章,纯粹做学习笔记,关于Pandas,无疑是数据分析最重要的的库之一,所以会先从Pandas开始,会涉及的内容:Pandas简介、Pandas最重要的两种数据结构Series和DataFrame,有了基础后第三块开始实战,巩固练习。
【Pandas简介】
Pandas是什么?有哪些功能?用来做什么?为什么用它?怎么用?
参考:Pandas(Python data analysis的简写),首先是库包工具,
1、什么样的工具:有高级数据结构和函数;
2、为什么高级:可以利用结构化、表格化的数据工作快速、简单、有表现力
3、有哪些数据结构和函数:如DataFrame是表格化、面向列、使用行列标签的数据结构,Series是一种一维标签的数组对象。函数有is_null()、apply()、索引函数等等。
4、用来什么:数据操作、预处理、数据清洗。
5、怎么用:后面详细讲解。
【Series详解】
到这里,估计你已经明白,今天要分享的标题内容Pandas中的Series其实就是一种高级的数据结构,可以让数据处理有效、简单、快捷。
Series是一种类似于一维数组的对象,是由一组数据以及一组与之相关的数据标签(即索引)组成。
一、创建Series
1、通过列表创建
我们看到,前面自动生成0到N-1(N为列表的长度)的索引,pd.Series()括号直接传入列表
2、通过字典创建
从上面的例子我们知道,只要在pd.Series()括号内传入自定义的字典即可:这时我们发现,Series的索引变为字典的键,字典的值变成了数组。
3、通过一维数组创建
关于numpy的相关知识会在后面涉及,写文章的时候,会前后内容交叉,便于复习记忆。
一维数组的创建方法:np.array();
缺失值生成的方法:np.NaN。
【注】:Series中传入的数据类型必须统一,
如:bb=np.array([11,23,np.NAN,“李三”,24,-6,89.33]),会报错。同时我们看到float和int是可以共存的,因为是数字类型。
二、Series值的访问
1、访问值和索引:.values和.index
2、索引可以在创建的时候定义
我们仍然用data3,但是在定义索引的时候,用了三种不同的方法,原来的0到N-1的数字变成我们定义的索引。
3、通过索引访问数组:
多个的时候传入列表
4、通过布尔值访问、过滤
单独看看布尔值是什么,对应判断为真的位置的值被提取出来:
那么可不可以多条件呢?
此处有坑需要注意:
错误的写法:data3[data3>20 & data3<25]
正确的写法:data3[(data3>20) & (data3<25)]
5、缺失值和非缺失值的过滤:.isnull()和.notnull()
6、运算
会广播到每个值
data4+1 #每个值+1
data4*10 #m每个值*10
data4**2 #乘方,对应到每个值
data4/10 #除法
聚合:numpy的聚合函数可以直接调用
np.sum(data4)
np.mean(data4)
np.exp(data4)
7、Series自动对齐
data4和data5如下:
两个Series相加,按照索引,两个数据索引都相同的相加,不在任何一个中以NaN填充对齐
当然还可以用对应的函数:
data5.add(data4) # 加法
data5.sub(data4) #减法
data5.div(data4) #除法
data5.mul(data4) #乘法
7、Series对象本身有name属性
【总结】:
本篇文章后,你应该掌握了pandas是什么,他的其中一种数据结构Series相关的知识:创建、读取值,条件过滤、数学运算,以及相关函数的使用。