常用代码集合:pandas用法-全网最详细教程-CSDN博客
pycharm引入csv:pycharm读取CSV文件-CSDN博客
1.1 认识series
numpy中,array数组是list的进阶版,同理,pandas库也为我们提供了字典的进阶版:series。
其创建方式有两种,一种是直接引入已有字典,如:
*注意Series开头大写
最后输出为:
显然,series与字典的一大不同之处在于它是竖直的,并且会于末尾显示value的数据类型。
当然,直接引入key数组和value数组也可以创建series:
需要注意的是,无论引入的是数组还是列表还是其它格式,进入
series后都会统一格式化为数组。
二维series
我们可以将两个一维series合成为二维series,具体方式为:
a = pd.Dataframe({“索引1”:series1,“索引2”:series2})
如果索引1与索引2使用了同一套keys,则最后会显示为:
如果使用的keys不同,则不同的项会被单独列为一行,另一套keys缺失的部分会显示为NaN,例子:
同样的,二维series的创建也支持输入行索引(index),列索引(columns)与值矩阵(value)来进行快捷创建,如:
*这里的值矩阵为了使元素统一格式,自动将数字转换为了字符串,但进入series后,它会被设置成兼容多种格式的object类型。
series的索引
series的二维索引
在一维索引中,若显性索引不是数字,则可以不写索引器,但在二维series中,索引器的存在是必须的
显然的,在二维series中检索元素需要提供两个索引,而使用花式索引检索多个元素时,同类型的索引应该置于一起。除此之外,花式索引也不再仅仅输出向量,而是同样输出二维series,这是由series的特性决定的。
二维series的切片:
方法与一维切片大致相同,只是注明范围的格式由[a:b]变为[a:b,c:d],例子:
转置
转置代码仍然支持。
同理,翻转仍然支持。
series的重塑
由于行标签与列标签的存在,.reshape()已不再适用,重塑操作限制于增添/独立出新的行或列:
series合并
例子:
而二维series与一维series合并则简单得多,以合并列对象为例子:
行对象合并则须使用loc:
二维对象与二维对象的合并:
*axis不写时默认为0,即添加行个体
对象与系数间的运算:
参考numpy,此处仅提供备忘代码表。
对象间运算(一维):
同理,是精确的单对单,任意一方的对应数据为缺失时,返回NaN
对象间运算(二维):
由于不能确保数据全为数字,故运算时须注明行/列,其它无区别:
缺失值的处理
*isnull()并非提取出缺失数据,而是将对象内数据转化为布尔类型
缺失值清除:
填充缺失数据:
*二维的方法完全相同
数据分析处理方法:
也可以使用方法,一次性查看以上所有特征:
数据透视:
数据透视,是一种锁定某几项特征数据,分析其它数据与它的关联性的方法。
图中,pd.cut()意思是将目标index/column值重置为括号内的对应区间,例如我们有一组年龄数据,对其使用pd.cut(0,25,120)后,0到25岁的”年龄“数据会直接变为(0,25],25到一百二十岁的同理。
而pd.qcut()意思是对数据进行等分,等分数目为括号内数。