python中DataFrame数据合并merge()和concat()方法怎么用

    merge()

    1.常规 合并

    ①方法1

    指定一个参照列,以该列为准,合并其他列。

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '003'],                    'num1': [120, 101, 104],                    'num2': [110, 102, 121],                    'num3': [105, 120, 113]})df2 = pd.DataFrame({'id': ['001', '002', '003'],                    'num4': [80, 86, 79]})print(df1)print("=======================================")print(df2)print("=======================================")df_merge = pd.merge(df1, df2, on='id')print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    ②方法2

    要实现该合并,也可以通过索引来合并,即以index列为基准。将left_index 和 right_index 都设置为True
    即可。(left_index 和 right_index 都默认为False,left_index表示左表以左表数据的index为基准, right_index表示右表以右表数据的index为基准。)

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '003'],                    'num1': [120, 101, 104],                    'num2': [110, 102, 121],                    'num3': [105, 120, 113]})df2 = pd.DataFrame({'id': ['001', '002', '003'],                    'num4': [80, 86, 79]})print(df1)print("=======================================")print(df2)print("=======================================")df_merge = pd.merge(df1, df2, left_index=True, right_index=True)print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    相比方法①,区别在于,如图,方法②合并出的数据中有重复列。

    重要参数

    pd.merge(right,how=‘inner’, on=“None”, left_on=“None”, right_on=“None”, left_index=False, right_index=False )

    参数 描述
    left 左表,合并对象,DataFrame或Series
    right 右表,合并对象,DataFrame或Series
    how 合并方式,可以是left(左合并), right(右合并), outer(外合并), inner(内合并)
    on 基准列 的列名
    left_on 左表基准列列名
    right_on 右表基准列列名
    left_index 左列是否以index为基准,默认False,否
    right_index 右列是否以index为基准,默认False,否

    其中,left_index与right_index 不能与 on 同时指定。

    合并方式 left right outer inner

    准备数据‘

    新准备一组数据:

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '003'],                    'num1': [120, 101, 104],                    'num2': [110, 102, 121],                    'num3': [105, 120, 113]})df2 = pd.DataFrame({'id': ['001', '004', '003'],                    'num4': [80, 86, 79]})print(df1)print("=======================================")print(df2)print("=======================================")

    python中DataFrame数据合并merge()和concat()方法怎么用

    inner(默认)

    使用来自两个数据集的键的交集

    df_merge = pd.merge(df1, df2, on='id')print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    outer

    使用来自两个数据集的键的并集

    df_merge = pd.merge(df1, df2, on='id', how="outer")print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    left

    使用来自左数据集的键

    df_merge = pd.merge(df1, df2, on='id', how='left')print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    right

    使用来自右数据集的键

    df_merge = pd.merge(df1, df2, on='id', how='right')print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    2.多对一合并

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '003'],                    'num1': [120, 101, 104],                    'num2': [110, 102, 121],                    'num3': [105, 120, 113]})df2 = pd.DataFrame({'id': ['001', '001', '003'],                    'num4': [80, 86, 79]})print(df1)print("=======================================")print(df2)print("=======================================")

    python中DataFrame数据合并merge()和concat()方法怎么用

    如图,df2中有重复id1的数据。

    合并

    df_merge = pd.merge(df1, df2, on='id')print(df_merge)

    合并结果如图所示:

    python中DataFrame数据合并merge()和concat()方法怎么用

    依然按照默认的Inner方式,使用来自两个数据集的键的交集。且重复的键的行会在合并结果中体现为多行。

    3.多对多合并

    如图表1和表2中都存在多行id重复的。

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '002', '002', '003'],                    'num1': [120, 101, 104, 114, 123],                    'num2': [110, 102, 121, 113, 126],                    'num3': [105, 120, 113, 124, 128]})df2 = pd.DataFrame({'id': ['001', '001', '002', '003', '001'],                    'num4': [80, 86, 79, 88, 93]})print(df1)print("=======================================")print(df2)print("=======================================")

    python中DataFrame数据合并merge()和concat()方法怎么用

    df_merge = pd.merge(df1, df2, on='id')print(df_merge)

    python中DataFrame数据合并merge()和concat()方法怎么用

    concat()

    pd.concat(objs, axis=0, join=‘outer’, ignore_index:bool=False,keys=None,levels=None,names=None, verify_integrity:bool=False,sort:bool=False,copy:bool=True)

    参数 描述
    objs Series,DataFrame或Panel对象的序列或映射
    axis 默认为0,表示列。如果为1则表示行。
    join 默认为”outer”,也可以为”inner”
    ignore_index 默认为False,表示保留索引(不忽略)。设为True则表示忽略索引。

    其他重要参数通过实例说明。

    1.相同字段的表首位相连

    首先准备三组DataFrame数据:

    import pandas as pddf1 = pd.DataFrame({'id': ['001', '002', '003'],                    'num1': [120, 114, 123],                    'num2': [110, 102, 121],                    'num3': [113, 124, 128]})df2 = pd.DataFrame({'id': ['004', '005'],                    'num1': [120, 101],                    'num2': [113, 126],                    'num3': [105, 128]})df3 = pd.DataFrame({'id': ['007', '008', '009'],                    'num1': [120, 101, 125],                    'num2': [113, 126, 163],                    'num3': [105, 128, 114]})print(df1)print("=======================================")print(df2)print("=======================================")print(df3)

    python中DataFrame数据合并merge()和concat()方法怎么用

    合并

    dfs = [df1, df2, df3]result = pd.concat(dfs)print(result)

    python中DataFrame数据合并merge()和concat()方法怎么用

    如果想要在合并后,标记一下数据都来自于哪张表或者数据的某类别,则也可以给concat加上 参数keys

    result = pd.concat(dfs, keys=['table1', 'table2', 'table3'])print(result)

    python中DataFrame数据合并merge()和concat()方法怎么用

    此时,添加的keys与原来的index组成元组,共同成为新的index。

    print(result.index)

    python中DataFrame数据合并merge()和concat()方法怎么用

    2.横向表合并(行对齐)

    准备两组DataFrame数据:

    import pandas as pddf1 = pd.DataFrame({'num1': [120, 114, 123],                    'num2': [110, 102, 121],                    'num3': [113, 124, 128]}, index=['001', '002', '003'])df2 = pd.DataFrame({'num3': [117, 120, 101, 126],                    'num5': [113, 125, 126, 133],                    'num6': [105, 130, 128, 128]}, index=['002', '003', '004', '005'])print(df1)print("=======================================")print(df2)

    python中DataFrame数据合并merge()和concat()方法怎么用

    当axis为默认值0时:

    result = pd.concat([df1, df2])print(result)

    python中DataFrame数据合并merge()和concat()方法怎么用

    横向合并需要将axis设置为1

    result = pd.concat([df1, df2], axis=1)print(result)

    python中DataFrame数据合并merge()和concat()方法怎么用

    对比以上输出差异。

    • axis=0时,即默认纵向合并时,如果出现重复的行,则会同时体现在结果中

    • axis=1时,即横向合并时,如果出现重复的列,则会同时体现在结果中。

    3.交叉合并

    result = pd.concat([df1, df2], axis=1, join='inner')print(result)

    python中DataFrame数据合并merge()和concat()方法怎么用

    感谢各位的阅读,以上就是“ python中DataFrame数据合并merge()和concat()方法怎么用”的内容了,经过本文的学习后,相信大家对python中DataFrame数据合并merge()和concat()方法怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

    文章标题:python中DataFrame数据合并merge()和concat()方法怎么用,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/28497

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    亿速云的头像亿速云
    0 0
    mysql有没有触发器
    上一篇 2022年9月21日 下午11:07
    如何进行XiaoBa勒索病毒变种分析
    下一篇 2022年9月21日 下午11:08

    相关推荐

    • 2024年9款优质CRM系统全方位解析 其他

      2024年9款优质CRM系统全方位解析

      文章介绍的工具有:纷享销客、Zoho CRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpot CRM、Apptivo。 在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要…

      Yang的头像 Yang
      2024年7月25日
      16 00
    • 数据库权限关系图表是什么 其他

      数据库权限关系图表是什么

      数据库权限关系图表是一种以图表形式展示数据库权限分配和管理的工具。它可以有效地帮助我们理解和管理数据库中的各种权限关系。数据库权限关系图表主要包含以下几个部分:数据对象、用户(或用户组)、权限类型、权限级别、权限状态等。其中,数据对象是权限关系图表中的核心元素,它代表了数据库中的各种数据资源,如表、…

      worktile的头像 worktile
      2024年7月22日
      2 00
    • 诚信数据库是什么意思 其他

      诚信数据库是什么意思

      诚信数据库是一种收集、存储和管理个人或组织诚信信息的系统。它是一种用于评估和管理个人或组织行为的工具,通常由政府、商业组织或者非营利组织进行运营。诚信数据库的主要功能包括:1、评估个人或组织的诚信状况;2、提供决策支持;3、预防和控制风险;4、促进社会信用体系建设。 在这四大功能中,评估个人或组织的…

      飞飞的头像 飞飞
      2024年7月22日
      4 00
    • 数据库期末关系代数是什么 其他

      数据库期末关系代数是什么

      关系代数是一种对关系进行操作的代数系统,是关系模型的数学基础,主要用于从关系数据库中检索数据。其操作包括选择、投影、并集、差集、笛卡尔积、连接、除法等。其中,选择操作是对关系中的元组进行筛选,只保留满足某一条件的元组;投影操作则是从关系中选择出一部分属性构造一个新的关系。 一、选择操作 选择操作是关…

      不及物动词的头像 不及物动词
      2024年7月22日
      7 00
    • mysql建立数据库用什么命令 其他

      mysql建立数据库用什么命令

      在MySQL中,我们使用"CREATE DATABASE"命令来创建数据库。这是一个非常简单且基础的命令,其语法为:CREATE DATABASE 数据库名。在这个命令中,“CREATE DATABASE”是固定的,而“数据库名”则是你要创建的数据库的名称,可以自己设定。例如,如…

      飞飞的头像 飞飞
      2024年7月22日
      5 00
    软件选型
    热门文章
    猜你喜欢
    • 客户关系管理软件有哪些?对比16款

      客户关系管理软件有哪些?对比16款

      2024年4月29日

    • 2024年项目管理软件排行榜

      2024年项目管理软件排行榜

      2024年4月25日

    • 哪些软件适合用来做企业知识管理

      哪些软件适合用来做企业知识管理

      2023年8月22日

    • 不错的在线看板工具软件有哪些

      不错的在线看板工具软件有哪些

      2023年2月10日

    • 常用的协同办公系统有哪些

      常用的协同办公系统有哪些

      2023年2月2日

    • jira和禅道哪个比较好用

      jira和禅道哪个比较好用

      2023年2月2日

    • 禅道项目管理软件怎么样

      禅道项目管理软件怎么样

      2023年2月2日

    • 有哪些好用的需求管理工具

      有哪些好用的需求管理工具

      2023年2月2日

    • 有哪些项目管理软件排行榜前十的产品

      有哪些项目管理软件排行榜前十的产品

      2023年2月2日

    • 国内外好用的todolist软件有哪些

      国内外好用的todolist软件有哪些

      2023年2月2日

    • 办公自动化oa需求

      办公自动化oa需求

      2023年8月3日

    • oa办公系统需要什么设备

      oa办公系统需要什么设备

      2023年5月28日

    • oa办公系统需要什么硬件

      oa办公系统需要什么硬件

      2023年5月28日

    • 抖音是否可以同时在两个手机上登录?

      抖音是否可以同时在两个手机上登录?

      2023年8月3日

    • i5和i7有什么区别

      i5和i7有什么区别

      2023年1月31日

    • okr和kpi的区别是什么

      okr和kpi的区别是什么

      2022年11月16日

    • git切换分支命令的方法

      git切换分支命令的方法

      2023年3月16日

    • 抖音极速版和抖音有什么区别

      抖音极速版和抖音有什么区别

      2023年6月1日

    • linux下载文件命令

      linux下载文件命令

      2023年3月17日

    • 什么是 IP

      什么是 IP

      2022年10月24日

    • 什么是数字编程联想法

      什么是数字编程联想法

      2024年5月7日

    • 在安全环境下编程是什么

      在安全环境下编程是什么

      2024年4月27日

    • 编程软考考什么

      编程软考考什么

      2024年5月2日

    • linux删除文件夹命令

      linux删除文件夹命令

      2023年3月17日

    • 项目清单化管理问题有哪些

      项目清单化管理问题有哪些

      2024年8月2日

    • 不懂英语学什么编程好呢

      不懂英语学什么编程好呢

      2024年5月12日

    • okr如何填写|OKR

      okr如何填写|OKR

      2024年1月17日

    • 机械厂用的编程是什么编程

      机械厂用的编程是什么编程

      2024年5月2日

    • 项目管理的证书有哪些类型图片

      项目管理的证书有哪些类型图片

      2024年8月3日

    • 少儿编程什么进小学课程

      少儿编程什么进小学课程

      2024年5月7日

    注册PingCode 在线客服
    站长微信
    站长微信
    电话联系

    400-800-1024

    工作日9:30-21:00在线

    分享本页
    返回顶部
    PingCode智能化研发管理工具,25人以下免费使用。

    玻璃钢生产厂家合肥玻璃钢雕塑供应商商场美陈的发展历程郑州水果玻璃钢雕塑定制营口玻璃钢景观雕塑人物雕塑玻璃钢机器人雕塑丽水玻璃钢陶瓷雕塑公司常用玻璃钢花盆价格毕节贵阳玻璃钢雕塑定制嘉峪关公园玻璃钢雕塑设计大型玻璃钢雕塑哪家便宜夜晚内发光的玻璃钢雕塑河南玻璃钢仿铜人物雕塑施工唐山动物玻璃钢雕塑生产厂家中庭商场美陈批发价玻璃钢花箱玻璃钢雕塑美女老板郑州玻璃钢雕塑多少钱修补一个玻璃钢的雕塑多少钱崇州玻璃钢雕塑公司浦江人物玻璃钢雕塑安庆景观玻璃钢雕塑定做价格江苏玻璃钢海豚雕塑玻璃钢雕塑的做法中山玻璃钢雕塑材质广东玻璃钢桃子雕塑厦门城市玻璃钢雕塑西城玻璃钢动物雕塑长治玻璃钢景观雕塑浙江永康玻璃钢人物雕塑价格玻璃钢雕塑小品厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化