要按照某个key(某一列),去匹配不同df下的其他这个key的其他信息,使用pandas的merge方法

news/2024/9/22 18:08:01

代码示例:
python
Copy code
import pandas as pd

读取表格

target_df = pd.read_excel('target_models.xlsx') # 总目标车型表
table2_df = pd.read_excel('table2.xlsx') # 包含 id 和 url 的表
table3_df = pd.read_excel('table3.xlsx') # 包含电池类型、驱动方式等信息的表

步骤1:根据Model名称匹配 table2 中的 id 和 url

merged_df = pd.merge(target_df, table2_df[['Model', 'id', 'url']], on='Model', how='left')

步骤2:通过id在 table3 中查找对应的电池类型、驱动方式等信息

final_df = pd.merge(merged_df, table3_df[['id', 'battery_type', 'drive_mode', 'owner_tested_energy_consumption', 'valid_sample_size']], on='id', how='left')

保存为新表格

final_df.to_excel('merged_final_table.xlsx', index=False)
解释:
数据读取:

target_models.xlsx 是总目标车型表,包含 BEV Model 的名称。
table2.xlsx 包含 Model, id, url 信息。
table3.xlsx 包含 id, battery_type, drive_mode, owner_tested_energy_consumption, valid_sample_size 信息。
步骤1:匹配 Model 和 id:

使用 pandas.merge() 根据 Model 列,将 id 和 url 从 table2 合并到 target_df 中,how='left' 确保在目标表中没有匹配的 Model 的话会填充为空值。
步骤2:根据 id 匹配信息:

再次使用 merge(),根据 id 列将 battery_type 等信息从 table3 合并进来,使用 how='left' 填充没有找到的 id 对应的数据为 NaN(空值)。
结果保存:

将最终合并后的表格保存为新的 Excel 文件 merged_final_table.xlsx。
结果:
合并后的表格将会包含:

Model 名称(来自目标表)
对应的 id, url(来自第二张表)
battery_type, drive_mode, owner_tested_energy_consumption, valid_sample_size(来自第三张表)
如果某个 Model 在表2或表3中没有对应的数据,则这些字段会自动填充为空值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

C10-05-2-X-ray简单使用

一、X-ray 主流应用漏洞扫描工具,也支持部分主机扫描功能(社区版+高级版) 下载: Github: https://github.com/chaitin/xray/releases (国外) CT stack: https://stack.chaitin.com/tool/detail?id=1 (国内)官方文档说明:快速开始 - xray Documentation首次运行会在同…

C10-05-1-Nmap常用参数说明

一、Nmap免责声明 本文仅是个人对该工具的学习测试过程记录,不具有恶意引导意向。 本文工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。 在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿…

mysql安装(windows-mysql-8.1.0-winx64.zip安装)

1、官网下载,解压缩2、配置环境变量3、新增my.ini文件,根据电脑环境修改配置 # 设置mysql的安装目录 basedir # 设置mysql数据库的数据的存放目录 datadir my.ini文件内容如下: [mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=D:\kaifa\mysql-8.1.0-winx64# …

【游记】CSP-S2024游记

寄。CSP-S2024 游记展开目录 目录CSP-S2024 游记初赛9.21 上午9.21 下午初赛 9.21 上午 关于为什么从比赛当天开始,原因是我记性太差全忘了。 早上起来水了会谷,吃完饭出发。 同车 @Vsinger_洛天依 和 @JustinXaviel. 我和洛天依都不考钩组,所以把 JustinXaviel 送到地方之后…

UML在线工具的使用

UML在线编辑网站 https://plantuml.com/zh/class-diagram 模板(类方法显示) @startuml skinparam classAttributeIconSize 0 class Config {+load() +save() } @enduml

CSP2024-24

2A 题意:给定长度为 \(n\) 的非负整数数组 \(a\),求最小的 \(r−l+1\) 满足 \(l≤r,\sum_{i = l}^ra_i\) 是合数。 考虑全是正数的情况,答案一定 \(\le 4\),考虑一下每个数的奇偶性即可。 那么就把所有正数及其位置存下来,使得 \(b_i = a_{p_i}\),暴力检查 \(b\) 中长度为…

放开那代码让我来!——Cursor帮你写代码的奇妙之旅

让我们开门见山:编程很酷,但也很折磨人。那些长时间盯着屏幕,debug无休止的日子,只有程序员懂得它的酸爽。而就在这个编程焦虑的世界中,Cursor横空出世,带着一系列魔法功能,如同你手中的一根智能魔杖,让写代码变得像煮速冻面一样简单。 Cursor,一款基于AI的编程助手,…