级联操作

  • 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的级联合并操作相关推荐

  1. 数据分析之Pandas合并操作总结

    ↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习,不错过Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学 pandas 是一个强大 ...

  2. Pandas知识点-合并操作combine

    Pandas知识点-合并操作combine combine是联合的意思,在Pandas中,combine()方法也是一种实现合并的方法,本文介绍combine()方法的用法. 一.combine_fi ...

  3. Pandas知识点-合并操作join

    Pandas知识点-合并操作join 在Pandas中,join()方法也可以用于实现合并操作,本文介绍join()方法的具体用法. 一.基础合并操作 join(other): 将一个或多个DataF ...

  4. Pandas知识点-合并操作merge

    Pandas知识点-合并操作merge merge()方法是Pandas中的合并操作,在数据处理过程中很常用,本文介绍merge()方法的具体用法. 一.基础合并操作 merge(left, righ ...

  5. [转载] Pandas:DataFrame对象的基础操作

    参考链接: 创建一个Pandas DataFrame DataFrame对象的创建,修改,合并 import pandas as pd import numpy as np 创建DataFrame对象 ...

  6. PySpark:DataFrame及其常用列操作

    Spark版本:V3.2.1 1. DataFrame 虽然RDD是Spark最基本的抽象,但RDD的计算函数对Spark而言是不透明的.也就是说Spark并不知道你要在计算函数里干什么.无论你是要做 ...

  7. pandas合并操作

    pandas合并操作 在实际工作中,我们的数据经常存储在多个文件中,这时候就需要挨个读取出来,然后合并成一个DataFrame对象.在pandas中,可以通过pd.concat和pd.merge来实现 ...

  8. pandas读取多个文件内容为dataframe、并合并为一个dataframe、pandas创建仅有列标签而内容为空的dataframe

    pandas读取多个文件内容为dataframe.并合并为一个dataframe.pandas创建仅有列标签而内容为空的dataframe 目录

  9. R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法、data.table、dplyr等方案

    R语言合并两个或多个有序数dataframe实战(dataframe的纵向合并):使用R原生方法.data.table.dplyr等方案 目录

最新文章

  1. SQL查询语句 select 详解
  2. Tools and Strategies for Long-Read Sequencing and De Novo Assembly of Plant Genomes
  3. stm32 外部中断学习
  4. pre2-flink单机部署与job提交
  5. 学校选址_洛谷U3451_带权中位数
  6. java中去除文件名的后缀名_Java程序在最后一个点后去除其扩展名的文件名
  7. flume与log4j的整合
  8. matlab colormap详解 (2
  9. [转载]VC6中的文件后缀
  10. 关于最新版的JCreator只能编译不能运行的问题
  11. ai修复照片软件是哪个软件_智能照片修复
  12. winform textbox文本框根据内容自动调整高度
  13. 惠普m1216硒鼓清零步骤_hpm1213nf清零
  14. iOS里的动态库和静态库
  15. 华为云CDN,无忧畅享网络
  16. ffmpeg probe一个文件的过程
  17. VS报错之混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
  18. 蓝牙配对-扫描-连接-状态查询
  19. C++ dpi,px,cm,mm换算心得,以及以a4纸计算为例,其它大家各自换算
  20. 一个啥都不懂但还不知天高地厚的我

热门文章

  1. python sort函数返回值_python中 sort方法 和sorted函数
  2. python修改pdf文件大小,python读pdf文件字体大小_用Python读取pdf文件
  3. android textview 动态高度自适应,TextView自适应高度(解决_UITextContainerView布局问题)...
  4. html文字阴影php,HTML_html5文字阴影效果text-shadow使用示例,复制代码代码如下: !DOCTYPE h - phpStudy...
  5. 计算机表情识别技术研究学什么,表情识别的图像预处理和特征提取方法研究
  6. html上下走马灯特效,上下左右滚动的走马灯文字代码
  7. solidity 合约权限授权_智能合约的调配模式:如何让你的智能合约安全协作?
  8. MySQL三种打开方式
  9. Derby安装使用说明
  10. 【CSS3】Advanced3:Universal, Child, and Adjacent Selectors