Pandas - 数据合并

        DataFrame数据合并主要使用merge()方法和concat()方法。

1.数据合并(merge()方法)

        Pandas模块的merge()进行数据合并时,两个DataFrame对象必须有相同的列。

        1.常规合并

import pandas as pddf1 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'语文':[110,105,109],'数学':[105,88,120],'英语':[99,115,130]})df2 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'体育':[34.5,39.7,38]})df_merge=pd.merge(df1,df2,on='编号')
print(df_merge)

        该示例中,编号是相同的,所以会将df2中“体育”作为新的一列加入到df1中。 

        2.通过索引合并

import pandas as pddf1 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'语文':[110,105,109],'数学':[105,88,120],'英语':[99,115,130]})df2 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'体育':[34.5,39.7,38]})df_merge=pd.merge(df1,df2,left_index=True,right_index=True)
print(df_merge)

        3.对合并数据去重 

         使用到how属性,就是让df1保留所有的行列数据,df2则根据df1的行列进行补全。

import pandas as pddf1 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'语文':[110,105,109],'数学':[105,88,120],'英语':[99,115,130]})df2 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'体育':[34.5,39.7,38]})df_merge=pd.merge(df1,df2,on='编号',left_index=True,right_index=True)
print(df_merge)
df_merge=pd.merge(df1,df2,on='编号',how='left')
print(df_merge)

        4.多对一的数据合并

        根据共有列中的数据进行合并,df2根据df1的行列进行补全。

import pandas as pddf1 = pd.DataFrame({'编号':['mr001','mr002','mr003'],'学生姓名':['明日同学','高猿员','钱多多']})df2 = pd.DataFrame({'编号':['mr001','mr001','mr003'],'语文':[110,105,109],'数学':[105,88,120],'英语':[99,115,130],'时间':['1月','2月','1月']})df_merge=pd.merge(df1,df2,on='编号')
print(df_merge)

        5.多对多的数据合并

        根据共有列中的数据进行合并,df2,df1相互补全。

import pandas as pddf1 = pd.DataFrame({'编号':['mr001','mr002','mr003','mr001','mr001'],'体育':[34.5,39.7,38,33,35]})df2 = pd.DataFrame({'编号':['mr001','mr002','mr003','mr003','mr003'],'语文':[110,105,109,110,108],'数学':[105,88,120,123,119],'英语':[99,115,130,109,128]})df_merge=pd.merge(df1,df2)
print(df_merge)

2.数据合并(concat()方法)

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

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

        如果需要标记源数据来自于哪张表,可以使用:

        result = pd.concat(dfs, keys=['第一张表','第二张表','第三张表']) 

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

        用于数据列名不一致,缺失的数据使用Nan填充 。其中axis=1代表行合并。

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

        3.交叉合并

        交叉合并需要加上join参数,如值为inner,结果为两张表的交集;如果值为outer,结果为两张表的并集。 

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

        4.指定表对其数据(行对齐)

         如果指定参数join_axes,就可以指定根据哪张表来对齐数据。如下述代码,根据df4表对其,结果表的行术和df4的行术一致,在此基础上拼接df1表。

result = pd.concat([df1,df4],axis=1,join_axes[df4.index])

         

《python数据分析》p120

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机程序无法下载?

原因一:电源问题 电源可能是导致STM32微控制器无法下载程序的一个常见原因。确保电源稳定对于正常运行和下载程序至关重要。以下是一些电源问题: 1. 电源电压不足:如果STM32微控制器没有足够的电压供应,它可能无法正常工作或下载程…

22款奔驰GLS450升级中规主机 实现导航地图 中文您好奔驰

很多平行进口的奔驰GLS都有这么一个问题,原车的地图在国内定位不了,语音交互功能也识别不了中文,原厂记录仪也减少了,使用起来也是很不方便的。星骏汇小许 Xjh15863 其实很简单,我们只需要更换一台中规的新主机就可以实…

华为政企网络安全产品集

产品类型产品型号产品说明 防火墙及应用安全网关ASG5505ASG5000系列上网行为管理产品(以下简称“ASG5000”)是华为面向各类企业、政府、大中型数据中心以及各类无线非经营性场所推出的业界领先的综合上网行为管理产品。 该系列产品可深度识别、管控和…

【数据结构】树与二叉树(六):二叉树的链式存储

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语5.1.4 树的表示 5.2 二叉树5.2.1 二叉树1. 定义2. 特点3. 性质引理5.1:二叉树中层数为i的结点至多有 2 i 2^i 2i个,其中 i ≥ 0 i \geq 0 i≥0。引理5.2:高度为k的二叉…

Linux家目录变成了-bash-4.2$

Linux家目录变成了-bash-4.2$ Mark a workarround: 使用root用户,执行cp -a /etc/skel/. /home/zookeeper/(不是root用户也可以) 其中/home/zookeeper/目录是对应自己的家目录地址~ 若有帮到你,记得点赞,收藏呀…

『MySQL快速上手』-⑤-数据类型

文章目录 1.数据类型有哪些2.数值类型2.1 tinyint 类型2.2 bit 类型2.3 小数类型2.3.1 float2.3.2 decimal 3.字符串类型3.1 char3.2 varchar3.2 char 和 varchar 比较 4.日期和时间类型5.enum和set 1.数据类型有哪些 MySQL支持多种数据类型,这些数据类型可用于定义…

【AntDesign】Docker部署

docker部署是主流的部署方式,极大的方便了开发部署环境,保持了环境的统一,也是实现自动化部署的前提。 1 项目的目录结构 dist: 使用build打包命令,生成的打包目录 npm run build : 打包项目命令 docker: 存放docker容器需要修改…

Python爬虫-获取汽车之家车家号

前言 本文是该专栏的第9篇,后面会持续分享python爬虫案例干货,记得关注。 地址:aHR0cHM6Ly9jaGVqaWFoYW8uYXV0b2hvbWUuY29tLmNuL0F1dGhvcnMjcHZhcmVhaWQ9MjgwODEwNA== 需求:获取汽车之家车家号数据 笔者将在正文中介绍详细的思路以及采集方法,废话不多说,跟着笔者直接往…

MCU系统的调试技巧

MCU系统的调试技巧对于确保系统稳定性和性能至关重要。无论是在嵌入式系统开发的初期阶段还是在产品维护和优化的过程中,有效的调试技巧可以帮助开发人员快速发现和解决问题,本文将讨论一些MCU系统调试的技巧。 首先,使用调试工具是非常重要…

Push和Pull两种类型的消费者

根据使用者对读取操作的控制情况,消费者可分为两种类型。一个是DefaultMQPushConsumer,由系统控制读取操作,收到消息后自动调用传入的处理方法来处理;另一个是DefaultMQPullConsumer,读取操作中的大部分功能由使用者自…

[量化投资-学习笔记008]Python+TDengine从零开始搭建量化分析平台-CCI和ATR

目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介 将这两个指标放在一起,一方面是因为这两个指标都属于摆动指数,可以反应市场的活跃度。 另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘…

RedisTemplate连接密码设置教程

最近在一个项目中使用Redis保存Token时,出现连接Redis报错的情况 org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhos…

智能交通和自动驾驶技术

一、定义 智能交通和自动驾驶技术是指利用先进的信息技术和人工智能技术,实现交通系统的智能化和自动化。智能交通和自动驾驶技术不仅可以提高交通系统的效率和安全性,还可以改善人们的出行体验,促进城市可持续发展。 智能交通和自动驾驶技…

AR眼镜硬件解决方案_AR/VR智能眼镜安卓主板芯片方案介绍

随着近两年来增强现实(AR)技术的逐渐成熟,采用MT8788芯片解决方案的AR眼镜已经问世。众所周知,AR技术可以帮助开发者打造一个既强大而又实用的混合现实世界,将虚拟与真实世界相结合。 据了解,MT8788芯片采用了多芯片分布式处理系统…

虚幻5.3打包Windows失败

缺失UnrealGame二进制文件。 必须使用集成开发环境编译该UE项目。或者借助虚幻编译工具使用命令行命令进行编译 解决办法: 1.依次点击平台-项目启动程序 2.点击后面的按钮进行设置 3.稍等后,打包后的程序即可运行,之后就可以愉快的打包了

电商API:淘宝京东拼多多1688多电商平台的商品销量库存信息获取

item_get 获得淘宝商品详情 获取APIkeyitem_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘宝商品快递费用item_password 获得淘口令真实urlitem_list_updown 批量获得淘宝商品上下架时间seller_info 获得淘宝店铺详情item_search 按关键字搜索淘…

支持向量机 (SVM):初学者指南

照片由 Unsplash上的 vackground.com提供 一、说明 SVM(支持向量机)简单而优雅用于分类和回归的监督机器学习方法。该算法试图找到一个超平面,将数据分为不同的类,并具有尽可能最大的边距。本篇我们将介绍如果最大边距不存在的时候…

Android修行手册-实现利用POI将图片插入到Excel中(文末送书)

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

ZZ308 物联网应用与服务赛题第G套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (G卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用…

lsky Pci-go nas个人图床搭建

①安装PicGo 应用 http://192.168.50.249:18189/api/v1 上传电脑需要有node 和 npm环境,官网下载最新安装板node后,自动会配置npm环境。 ②安装 Lsky-Uploader 获取token: http://www.metools.info/code/post278.html 服务器域名为 Lsky p…