作用说明:
concat是按照某行或某列来合并,而是按照数据中具体的"某一字段"来连接数据。
merge是pandas中用来"合并"数据的函数,有点想excel中的vlookup()函数

1、concat()
pd.concat(objs, axis=0, join=‘outer’, join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
常用参数:
axis:{0,1,…},默认为0,也就是打竖,上下拼接。
join:{‘inner’,‘outer’},默认为“outer”。outer为并集、inner为交集。
join_axes:Index对象列表。

上下拼接:
import pandas as pd
df1 = pd.DataFrame({‘A’: [‘A0’, ‘A1’, ‘A2’, ‘A3’],
‘B’: [‘B0’, ‘B1’, ‘B2’, ‘B3’],
‘C’: [‘C0’, ‘C1’, ‘C2’, ‘C3’],
‘D’: [‘D0’, ‘D1’, ‘D2’, ‘D3’]},
index=[0, 1, 2, 3])
print(df1)
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3

df2 = pd.DataFrame({‘A’: [‘A4’, ‘A5’, ‘A6’, ‘A7’],
‘B’: [‘B4’, ‘B5’, ‘B6’, ‘B7’],
‘C’: [‘C4’, ‘C5’, ‘C6’, ‘C7’],
‘D’: [‘D4’, ‘D5’, ‘D6’, ‘D7’]},
index=[4, 5, 6, 7])
print(df2)
A B C D
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7

data = pd.concat([df1,df2])
print(data)
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7

df4 = pd.DataFrame({‘B’: [‘B2’, ‘B3’, ‘B6’, ‘B7’],
‘D’: [‘D2’, ‘D3’, ‘D6’, ‘D7’],
‘F’: [‘F2’, ‘F3’, ‘F6’, ‘F7’]},
index=[2, 3, 6, 7])
print(df4)
B D F
2 B2 D2 F2
3 B3 D3 F3
6 B6 D6 F6
7 B7 D7 F7

并集
outer_data = pd.concat([df1,df4],axis=1,join=‘outer’)
print(outer_data)
A B C D B D F
0 A0 B0 C0 D0 NaN NaN NaN
1 A1 B1 C1 D1 NaN NaN NaN
2 A2 B2 C2 D2 B2 D2 F2
3 A3 B3 C3 D3 B3 D3 F3
6 NaN NaN NaN NaN B6 D6 F6
7 NaN NaN NaN NaN B7 D7 F7

交集
inner_data = pd.concat([df1,df4],axis=1,join=‘inner’)
print(inner_data)
A B C D B D F
2 A2 B2 C2 D2 B2 D2 F2
3 A3 B3 C3 D3 B3 D3 F3

左为主
left_data = pd.concat([df1,df4],axis=1,join_axes=[df1.index])
print(left_data)
A B C D B D F
0 A0 B0 C0 D0 NaN NaN NaN
1 A1 B1 C1 D1 NaN NaN NaN
2 A2 B2 C2 D2 B2 D2 F2
3 A3 B3 C3 D3 B3 D3 F3

2、merge()
pd.merge(left, right, how=‘inner’, on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True,
suffixes=(’_x’, ‘_y’))
参数说明:
left: 拼接的左侧DataFrame对象
right: 拼接的右侧DataFrame对象
on: 指定两个dataframe按某一列进行连接,该列必须同时出现在两个dataframe中。
如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。
left_on:左侧DataFrame中用作连接键的列。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
right_on: 右侧DataFrame中用作连接键的列。可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
left_index: 如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键的列。
对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。
right_index: 与left_index功能相似。
how: ‘left’, ‘right’, ‘outer’或‘inner’之一。
默认inner。inner是取两个dataframe的连接键列中元素的交集,outer取其并集,如果其中一个dataframe中的连接键列中不含有某元素,则该元素对应的这行数据中的其它列用NAN填充。
sort: 按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。
suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。也可手动指定:suffixes=(“df1”,“df2”)

pd.concat()和pd.merge()相关推荐

  1. 天池csv转成grt代码里的luna的csv,pandas库来操作csv文件(pd.DataFrame,pd.concat,pd.Series,to_csv等)实现

    ps之前已经稍微处理过相关的csv文件,但是没有记录,发现基本忘光了看来记录还是一件非常重要的事情.碰巧DSB2017grt团队的代码里用的csv比较奇葩,我就把天池的数据的csv改成他们使用的模样. ...

  2. Python数据处理中 pd.concat 与 pd.merge 区别

    背景 数据的合并与关联是数据处理过程中经常遇到的问题,在SQL.HQL中大家可能都有用到 join.uion all 等 ,在 Pandas 中也有同样的功能,来满足数据处理需求,个人感觉Pandas ...

  3. 数据合并中pd.merge()和pd.concat()区别

    https://mp.weixin.qq.com/s?src=11&timestamp=1619685662&ver=3037&signature=3fZ7EE4fw8Ddfe ...

  4. 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...)形式 按照一列进 ...

  5. pandas使用pd.concat纵向合并多个dataframe实战:纵向合并(ignore_index参数)、为纵向合并的多个dataframe设置标识符指定数据来源(通过字典方式设置数据来源键)

    pandas使用pd.concat纵向合并多个dataframe实战:多个dataframe的纵向合并(ignore_index参数).为纵向合并的多个dataframe设置标识符指定数据来源(通过字 ...

  6. pandas使用pd.concat纵向合并多个dataframe实战:多个dataframe的纵向合并、为纵向合并的多个dataframe设置标识符指定数据来源

    pandas使用pd.concat纵向合并多个dataframe实战:多个dataframe的纵向合并.为纵向合并的多个dataframe设置标识符指定数据来源 目录

  7. pandas使用pd.concat横向合并多个dataframe实战:多个dataframe的横向表拼接(行对齐)、多个dataframe的横向表拼接(指定join参数、交集还是并集)

    pandas使用pd.concat横向合并多个dataframe实战:多个dataframe的横向表拼接(行对齐).多个dataframe的横向表拼接(指定join参数.交集还是并集) 目录

  8. python数据拼接: pd.concat

    1.concat concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合 pd.concat(objs, axis=0, join='outer', join_axes=Non ...

  9. 这部分代码有没有优化的空间:假如day天数不固定,pd.concat则也不固定?

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 汉文有道恩犹薄,湘水无情吊岂知? ...

最新文章

  1. linux hibernate suspend 区别,实现Linux休眠(sleep/hibernate)和挂起(suspend)
  2. 逐步优化求解最大子序列和
  3. 轻量级分布式任务调度平台 XXL-JOB
  4. 杨振宁讲(经典)数学笑话兼论数学和物理的关系
  5. JavaScript异步编程【上】 -- 同步和异步、事件循环(EventLoop)、微任务和宏任务、回调函数
  6. 【读书札记】《怦然心动——情感化交互设计指南》
  7. Pytorch BatchNorm
  8. c 中空格的asc码表_泰格豪雅卡莱拉系列计时码表,车迷心中的永远的“白月光”...
  9. Excel易用宝-安装与激活
  10. android面板驱动的使用方法,Android 专用驱动之Ashmen
  11. MYS-6ULX-IOT 开发板测评——支持 RTL8188 WiFi 模块
  12. STM32F7以太网HAL库源文件(stm32f7xx_hal_eth.c)笔记
  13. 【期权系列】顶部和底部信号:期权看跌看涨比(PCR)
  14. h5 vr效果_H5案例|通过VR展示的那些烧脑游戏
  15. 图书管理系统-成绩管理系统
  16. 最大似然函数、交叉熵和经验分布的关系
  17. 【Arduino+ESP32专题】PlatformIO串口监视器的默认波特率修改
  18. word中插入页码方法
  19. java的setquality值多少_java使用JPEGEncodeParam类的setQuality方法进行高质量图片缩放类(转)...
  20. 【Go语言 · 学习笔记】

热门文章

  1. 通过Nginx反向代理实现IP访问分流
  2. 做外贸十大不能接的订单!
  3. 如何注册和设置 zoom Background
  4. hEi2ANzja!;¥WgxjckTxiGZ¥ mp4_限时特价 | ¥499起享深圳东部华侨城两日双人游,住吃玩都有了!...
  5. [C语言]扫雷游戏(Mine Sweeper)
  6. 2021年flutter开发宝淘买菜前后端源码-免费开源
  7. 6.5 特殊用途语言特性
  8. 逆向js实例---美拍
  9. Web Vue VI
  10. 农场经营区块链游戏-CropBytes,扮演角色经营你的农场