DataFrame的级联合并操作
级联操作
- pd.concat,pd.append
pandas使用pa.concat函数,与np.concatenate函数类似,只是多了一些参数:
- objs
- axis=0
- keys
- join=‘outer’ / ‘inner’:表示的是级联的方式,outer会将所有的项进行级联(忽略匹配和不匹配),而inner只会将匹配的项级联到一起,不匹配的不级联
- ignore_index=Flase
匹配级联
import numpy as np
import pandas as pd
from pandas import DataFramedf1 = DataFrame(data=np.random.randint(0,100,size=(5,3)),columns=['A','B','C'])
df2 = DataFrame(data=np.random.randint(0,100,size=(5,3)),columns=['A','D','C'])pd.concat((df1,df2),axis=1)
不匹配级联
- 不匹配指的是级联的维度的索引不一致。例如纵向级联时索引不一致,横向级联时行索引不一致
- 有两种连接方式:
- 外连接:补NaN(默认模式)
- 内链接:只连接匹配的项
- 如果保留数据的完整性必须使用outer(外连接)
pd.concat((df1,df2),axis=0)pd.concat((df1,df2),axis=0,join='inner')
append函数的使用
df1.append(df2)#默认外级联
列不一致的列级联,默认外级联,不匹配的地方会补充空值
df3 = DataFrame(data=np.random.randint(0,100,size=(5,2)),columns=['A','B'])pd.concat((df1,df3),axis=0)
合并操作
- merge与cancat的区别在于,merge需要依据某一共同列来进行合并
- 使用pd.merge()合并时,会自动根据两者相同colums名称的那一列,作为key来进行合并
- 注意每一列元素的顺序不要求一致
一对一合并
df1 = DataFrame({'employee':['Bob','Jake','Lisa'],'group':['Accounting','Engineering','Engineering']})df2 = DataFrame({'employee':['Bob','Jake','Lisa'],'hire_date':['2004','2008','2012']})pd.merge(df1,df2,on='employee')#on是合并条件,默认会用相同的列
一对多合并
df3 = DataFrame({'employee':['Jake','Lisa'],'group':['Accounting','Engineering'],'hire':[2004,2016]})df4 = DataFrame({'group':['Accounting','Engineering','Engineering'],'supervisor':['Carly','Guido','Steve']})pd.merge(df3,df4)
多对多的合并
df5 = DataFrame({'group':['Engineering','Engineering','HR'],'supervisor':['Carly','Guido','Steve']})pd.merge(df1,df5,how='outer')
#how是合并方式inner(内连接)是默认值,还有outer(外连接),right(右连接),left(左连接)
key的规范化
- 当列冲突时,即有多个列名称相同时,需要使用on=来指定哪一个列作为key,配合suffixes指定冲突列名
df1 = DataFrame({'employee':['Jack','Summer','Steve'],'group':['Accounting','Finance','Marketing']})df2 = DataFrame({'employee':['Jack','Bob','Jake'],'hire_date':[2003,2009,2012],'group':['Accounting','sell','CEO'],})pd.merge(df1,df2)#不指定key的条件下,会使用所用相同的列作为keypd.merge(df1,df2,on='group')
- 当两张表没有可进行行连接的列时,可使用left_on和right_on手动指定merge中左右两边的哪一列作为连接的列
df1 = DataFrame({'employee':['Bobs','Linda','Bill'],'group':['Accounting','Product','Marketing'],'hire_date':[1998,2017,2018]})df5 = DataFrame({'name':['Lisa','Bobs','Bill'],'hire_dates':[1998,2016,2007]})pd.merge(df1,df5,left_on='employee',right_on='name')
DataFrame的级联合并操作相关推荐
- 数据分析之Pandas合并操作总结
↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 pandas 是一个强大 ...
- Pandas知识点-合并操作combine
Pandas知识点-合并操作combine combine是联合的意思,在Pandas中,combine()方法也是一种实现合并的方法,本文介绍combine()方法的用法. 一.combine_fi ...
- Pandas知识点-合并操作join
Pandas知识点-合并操作join 在Pandas中,join()方法也可以用于实现合并操作,本文介绍join()方法的具体用法. 一.基础合并操作 join(other): 将一个或多个DataF ...
- Pandas知识点-合并操作merge
Pandas知识点-合并操作merge merge()方法是Pandas中的合并操作,在数据处理过程中很常用,本文介绍merge()方法的具体用法. 一.基础合并操作 merge(left, righ ...
- [转载] Pandas:DataFrame对象的基础操作
参考链接: 创建一个Pandas DataFrame DataFrame对象的创建,修改,合并 import pandas as pd import numpy as np 创建DataFrame对象 ...
- PySpark:DataFrame及其常用列操作
Spark版本:V3.2.1 1. DataFrame 虽然RDD是Spark最基本的抽象,但RDD的计算函数对Spark而言是不透明的.也就是说Spark并不知道你要在计算函数里干什么.无论你是要做 ...
- pandas合并操作
pandas合并操作 在实际工作中,我们的数据经常存储在多个文件中,这时候就需要挨个读取出来,然后合并成一个DataFrame对象.在pandas中,可以通过pd.concat和pd.merge来实现 ...
- pandas读取多个文件内容为dataframe、并合并为一个dataframe、pandas创建仅有列标签而内容为空的dataframe
pandas读取多个文件内容为dataframe.并合并为一个dataframe.pandas创建仅有列标签而内容为空的dataframe 目录
- R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法、data.table、dplyr等方案
R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法.data.table.dplyr等方案 目录
最新文章
- SQL查询语句 select 详解
- Tools and Strategies for Long-Read Sequencing and De Novo Assembly of Plant Genomes
- stm32 外部中断学习
- pre2-flink单机部署与job提交
- 学校选址_洛谷U3451_带权中位数
- java中去除文件名的后缀名_Java程序在最后一个点后去除其扩展名的文件名
- flume与log4j的整合
- matlab colormap详解 (2
- [转载]VC6中的文件后缀
- 关于最新版的JCreator只能编译不能运行的问题
- ai修复照片软件是哪个软件_智能照片修复
- winform textbox文本框根据内容自动调整高度
- 惠普m1216硒鼓清零步骤_hpm1213nf清零
- iOS里的动态库和静态库
- 华为云CDN,无忧畅享网络
- ffmpeg probe一个文件的过程
- VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
- 蓝牙配对-扫描-连接-状态查询
- C++ dpi,px,cm,mm换算心得,以及以a4纸计算为例,其它大家各自换算
- 一个啥都不懂但还不知天高地厚的我
热门文章
- python sort函数返回值_python中 sort方法 和sorted函数
- python修改pdf文件大小,python读pdf文件字体大小_用Python读取pdf文件
- android textview 动态高度自适应,TextView自适应高度(解决_UITextContainerView布局问题)...
- html文字阴影php,HTML_html5文字阴影效果text-shadow使用示例,复制代码代码如下: !DOCTYPE h - phpStudy...
- 计算机表情识别技术研究学什么,表情识别的图像预处理和特征提取方法研究
- html上下走马灯特效,上下左右滚动的走马灯文字代码
- solidity 合约权限授权_智能合约的调配模式:如何让你的智能合约安全协作?
- MySQL三种打开方式
- Derby安装使用说明
- 【CSS3】Advanced3:Universal, Child, and Adjacent Selectors