代码示例:

import pandas as pd
import numpy as np
from pandas import Series,DataFrame#数据的拼接:concat
'''
axis=0 , join='inner' : 行上面进行伸缩,列的上面取交集
axis=0 , join='outer' : 行上面进行伸缩,列的上面取并集  等价于 df1.append(df2)
axis=1 , join='inner' : 列上面进行伸缩,行的上面取交集
axis=1 , join='outer' : 列上面进行伸缩,行的上面取并集ignore_index: 指的是拼接后是否忽视原df各自的索引
'''
df1 = pd.DataFrame(np.arange(6).reshape(3,2),columns=['a','c'])
df2 = pd.DataFrame(np.arange(6).reshape(2,3),columns=['c','d','e'])
print(pd.concat([df1,df2]))
'''
打印:a  c    d    e
0  0.0  1  NaN  NaN
1  2.0  3  NaN  NaN
2  4.0  5  NaN  NaN
0  NaN  0  1.0  2.0
1  NaN  3  4.0  5.0
'''
print(pd.concat([df1,df2],axis=0,join='outer'))
'''
打印:a  c    d    e
0  0.0  1  NaN  NaN
1  2.0  3  NaN  NaN
2  4.0  5  NaN  NaN
0  NaN  0  1.0  2.0
1  NaN  3  4.0  5.0
'''
print(pd.concat([df1,df2],axis=1,join='inner'))
'''
打印:a  c  c  d  e
0  0  1  0  1  2
1  2  3  3  4  5
'''
print(pd.concat([df1,df2],axis=0,join='outer',ignore_index=True))
'''
打印:a  c    d    e
0  0.0  1  NaN  NaN
1  2.0  3  NaN  NaN
2  4.0  5  NaN  NaN
3  NaN  0  1.0  2.0
4  NaN  3  4.0  5.0
'''#数据的合并:join。结果默认是以左表为基础显示,how='left' ,'right' ,'inner','outer'
df3=pd.DataFrame({'亮度':[1,3,5],'色度':[5,0,3]},index=list('abc'))
df4=pd.DataFrame({'饱和度':[1,9,8],'对比度':[6,6,7]},index=list('cde'))
print(df3.join(df4,how='outer'))
'''
打印:亮度   色度  饱和度  对比度
a  1.0  5.0  NaN  NaN
b  3.0  0.0  NaN  NaN
c  5.0  3.0  1.0  6.0
d  NaN  NaN  9.0  6.0
e  NaN  NaN  8.0  7.0
'''
print(df3.join(df4,how='left'))
'''
打印:亮度  色度  饱和度  对比度
a   1   5  NaN  NaN
b   3   0  NaN  NaN
c   5   3  1.0  6.0
'''
print(df3.join(df4,how='inner'))
'''亮度  色度  饱和度  对比度
c   5   3    1    6
'''#数据的合并:merge
'''
类似sql中的连接查询,on是连接字段,how='left' ,'right' ,'inner','outer' ,suffixes为两个DataFrame相同字段重命名规则。
on也可以指定多个字段,指定多个字段时,只有多个字段全部一样的条目才会组合到一起
on也可以区分left_on和right_on,比如pd.merge(df5,df6,left_on='名字',right_on='姓名'),应对合并DataFrame字段名字不一样的情况
'''
print('*'*30)
df5=pd.DataFrame({'名字':list('abcde'),'性别':['男','女','男','男','女'],'职称':['副教授','讲师','助教','教授','助教']},index=range(1001,1006))
print(df5)
'''
打印:名字 性别   职称
1001  a  男  副教授
1002  b  女   讲师
1003  c  男   助教
1004  d  男   教授
1005  e  女   助教
'''
df6=pd.DataFrame({'名字':list('abdax'),'课程':['C++','计算机导论','汇编','数据结构','马克思原理'],'职称':['副教授','讲师','教授','副教授','讲师']},index=[1001,1002,1004,1001,6001])
print('*'*30)
print(df6)
'''
打印:姓名     课程   职称
1001  a    C++  副教授
1002  b  计算机导论   讲师
1004  d     汇编   教授
1001  a   数据结构  副教授
6001  x  马克思原理   讲师
'''
print(pd.merge(df5,df6,on=['名字'],how='inner' ,suffixes=['_df1','_df2']))
'''
打印:名字 性别 职称_df1     课程 职称_df2
0  a  男    副教授    C++    副教授
1  a  男    副教授   数据结构    副教授
2  b  女     讲师  计算机导论     讲师
3  d  男     教授     汇编     教授
'''
print(pd.merge(df5,df6,on=['名字'],how='outer' ,suffixes=['_df1','_df2']))
'''
打印:名字   性别 职称_df1     课程 职称_df2
0  a    男    副教授    C++    副教授
1  a    男    副教授   数据结构    副教授
2  b    女     讲师  计算机导论     讲师
3  c    男     助教    NaN    NaN
4  d    男     教授     汇编     教授
5  e    女     助教    NaN    NaN
6  x  NaN    NaN  马克思原理     讲师
'''
print(pd.merge(df5,df6,on=['名字','职称'],how='left'))
'''名字 性别   职称     课程
0  a  男  副教授    C++
1  a  男  副教授   数据结构
2  b  女   讲师  计算机导论
3  c  男   助教    NaN
4  d  男   教授     汇编
5  e  女   助教    NaN
'''

pandas的数据拼接与合并(concat、join、merge)相关推荐

  1. Python数据分析pandas之数据拼接与连接

    Python数据分析pandas之数据拼接与连接 数据拼接处理 数据拼接处理指的是numpy.pandas里对数据的拼接.连接.合并等多种方法的概称.有时我们处理的数据会分很多步骤,而中间或者最终的结 ...

  2. 数据分析与AI(五)pandas的数据拼接操作/美国各州人口分析/苹果历年股票曲线图

    pandas的拼接操作 pandas的拼接分为两种: - 级联: pd.concat, pd.append - 合并: pd.merge, pd.join 0. 回顾numpy的级联 import n ...

  3. 04_pandas字符串函数;数据合并concat、merge;分组groupby;Reshaping;Pivot tables;时间处理(date_range、tz_localize等)

    字符串函数,Series的lower()函数 Series在str属性中提供了一组字符串处理方法,可以方便地对数组中的每个元素进行操作,如下面的代码片段所示.请注意,str中的模式匹配通常默认使用正则 ...

  4. Reactor 3 (10): 数据合并concat、merge

    由于业务需求有的时候需要将多个数据源进行合并,Reactor提供了concat方法和merge方法: concat方法示意图: merge方法示意图: 从图中可以很清楚的看出这两种合并方法的不同: c ...

  5. pd.concat数据拼接

    从本文你将学到如何利用pandas模块下的concat函数进行数据拼接. pd.concat 背景 完整代码 结果预览 代码解读 参考文献 背景 现在我有136price202006temp, 136 ...

  6. Python - pandas DataFrame数据的合并与拼接(merge、join、concat)

    目录 0 概述 1 merge方法 1.1 内连接 1.2 外连接 1.3 左连接 1.4 右连接 1.5 基于多列的连接算法 1.6 基于index的连接方法 2 join方法 2.1 index与 ...

  7. pandas 数据合并 pd.join() pd.merge() pd.crosstab() pd.concat()

    文章目录 pd.join() pd.merge() pd.merge(left, right, how='inner', left_on=None, right_on=None...)形式 按照一列进 ...

  8. 【Python】挑战SQL:图解Pandas的数据合并merge

    公众号:尤而小屋 作者:Peter 编辑:Peter 在实际的业务需求中,我们的数据可能存在于不同的库表中.很多情况下,我们需要进行多表的连接查询来实现数据的提取,通过SQL的join,比如left ...

  9. 图解pandas的数据合并merge

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 在实际的业务需求中,我们的数据可能存在于不同的库表中.很多情况下,我们需要进行多表的连接查询来实现数据的提取,通过SQL ...

最新文章

  1. HiCar SDK概述
  2. 流程工业数字孪生关键技术探讨
  3. 制作windows7 USB启动盘
  4. Wire:Linux开源聊天应用
  5. Xgboost简易入门教程
  6. 算法练习day11——190329(平衡二叉树、搜索二叉树、完全二叉树)
  7. Qt Creator应用3D效果
  8. .NET与鲲鹏共展翅,昇腾九万里(一)
  9. centos6.8 安装软件
  10. Angular6_服务端渲染SSR
  11. hbase原理与实践_JAVA连接HBase客户端及HBase写入数据和读取数据原理解析
  12. aws ping 不通的解决办法
  13. 解决springmvc加载JS,CSS等文件问题【转】
  14. Java使用apache commons连接ftp修改ftp文件名失败原因
  15. 在 Emacs 里修改现有文件的编码格式(转载)
  16. c++ opencv mat_【CV实战】OpenCV—Hello world代码示例
  17. Python实现B站MP4格式音频与视频的合并!超详细的教程!
  18. 后台如何清理软Raid
  19. 暴雪与网易宣布停止合作,多家厂商争夺暴雪代理权
  20. HTTP协议基本格式

热门文章

  1. JAVA设计模式之访问者模式
  2. 计算机视觉论文文献综述怎么找,如何有效在知网寻找属于自己课题的文献综述...
  3. 《IT老外在中国》第29期:这位美籍华裔兜兜转转又回到了心心念念的故乡
  4. Docker Compose 安装
  5. micropython STM32移植笔记(一)
  6. 谷歌浏览器的timeline工具的使用
  7. 风险评估等级计算机化系统分类,计算机化系统风险评估报告
  8. K-D 树, 高维空间索引
  9. HTML5的优势,语法变化以及基础常用标签
  10. pdf书籍规范页码编排