dataframe两个表合并_Pandas常⽤数据结构DataFrame详细
教程
pandas 是python的数据分析库,提供快速、灵活和富有表现⼒的数据结构,⽤于数据挖掘和数据分析,同时也提供数据清洗功能,与numpy、matplotlib并称,成为数据分析必学的三个库。Pandas的主要功能如下。
此外,其更⼴泛的⽬标是成为任何语⾔中可⽤的最强⼤,最灵活的开源数据分析⼯具。其中最常⽤的数据结构是DataFrame,本⽂将详细介绍DataFrame的⽤法。
Dataframe简介
Dataframe是pandas中的数据结构,也是带标签的、⼤⼩可变的,⼆维异构表格。
它类似于电⼦表格,可以在列中存储不同类型的数据(包括字符,整数,浮点值,分类数据等),Dataframe中的数据以⼀个或多个⼆维块存放,不是列表、字典或⼀维数组结构。
⼀、创建
1、通过字典创建
由数组/list组成的字典创建Dataframe,columns为字典key,index为默认数字标签,字典的值的长度必须保持⼀致!
2、通过⼆维数组直接创建
通过⼆维数组直接创建Dataframe,得到⼀样形状的结果数据,如果不指定index和columns,两者均返回默认数字格式
index和colunms指定长度与原数组保持⼀致
3、通过字典组成的列表创建
由字典组成的列表创建Dataframe,可以允许长度不⼀致,columns为字典的key,index不做指定则为默认数组标签
colunms和index参数分别重新指定相应列及⾏标签
⼆、DataFrame索引
1、df[] - 选择列
df[]默认选择列,[]中写列名,选择单列为Series,print结果为Series格式,多选列为Dataframe,print结果为Dataframe格式
⼀般⽤于选择列,也可以选择⾏
注意:反向截取是-1结束,不是0,末端不包含
2、df.loc[] - 按index选择⾏
3、 df.iloc[] - 按照整数位置(从轴的0到length-1)选择⾏
类似list的索引,其顺序就是dataframe的整数位置,从0开始计
4、切⽚索引
5、布尔索引
多⾏做判断 , 索引结果保留所有数据:True返回原数据,False返回值为NaN
6、多重索引
三、DataFrame基本技巧
1、数据查看、转置
2、添加与修改
要在dataframe最后新增列,直接在后⾯加⼀个[],在具体位置新增列⽤df.insert(index, obj)⽅法;新增⾏直接⽤loc。
3、删除
del语句 - 删除列
drop()删除⾏,inplace=False → 删除后⽣成新的数据,不改变原数据
drop()删除列,需要加上axis = 1,inplace=False → 删除后⽣成新的数据,不改变原数据
4、DataFrame对象之间的数据⾃动按照列和索引(⾏标签)对齐
5、排序
排序包括按值排序和按索引排序,按值排序 .sort_values,ascending参数:设置升序降序,默认升序
按索引排序 .sort_index
四、数据处理
1、数值计算
Dataframe可以⽤来进⾏常⽤的数学的计算,例如:
1、数据清洗
Dataframe的数据清洗包含重复值、缺失值、异常值等等的清洗
值计数:df.value_counts()
成员资格:df.isin()
替换:df.replace()
python数组合并判断重复值: df.duplicated()
删除重复值:df.drop_duplicates()
subset对应的值是列名,表⽰只考虑这两列,将这两列对应值相同的⾏进⾏去重。默认值为subset=None表⽰考虑所有列。
keep='first'表⽰保留第⼀次出现的重复⾏,是默认值。keep另外两个取值为"last"和False,分别表⽰保留最后⼀次出现的重复⾏和去除所有重复⾏。
缺失值清洗最简单的⽅法就是删除或不管,插补的⽅法有单⼀值填充、拉格朗⽇插值法、多重插补法
以及各种机器学习插补法等等,缺失值和异常值清洗⽅法具体可见python数据预处理之异常值、缺失值处理⽅法
3、数据合并
数据合并包括四种⽅法,merge、join、concat和append
(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=('_x', '_y'), copy=True, indicator=False)
类似于sql中的join,仅⽀持横向拼接,其中on关键字为拼接参考键,how为拼接⽅式,有inner,left,right,outer4种链接⽅式。
l df1.join(df2) 直接通过索引链接
at(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
可以进⾏横向和纵向连接,默认axis=0,⾏+⾏,但要求⾮拼接轴标签唯⼀,例如axis=0时,要求每个dataframe内部的列名是唯⼀的,只有相同列名才有拼接的意义。
l append,类似于列表的append⽅法,⼀般⽤来增加⾏
4、数据转换
数据转换⼀般⽤map和apply,map主要⽤于Series的转换,apply是series和dataframe都可以。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论