pandas处理两表合并

2024-06-05 11:20
文章标签 处理 合并 pandas 两表

本文主要是介绍pandas处理两表合并,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用pandas库来处理两个Excel文件,并根据“货号”列中的数字部分合并这两个文件的数据。以下是对这段代码的详细介绍:

  1. 导入必要的库

    • import pandas as pd: 导入pandas库,并给它起一个别名pd。
  2. 读取Excel文件

    • 定义了两个文件路径file_path1file_path2,分别指向两个Excel文件。
    • 使用pd.read_excel()函数读取这两个文件,并将数据加载到两个数据框df1df2中。
  3. 定义提取数字的函数

    • 定义了一个名为extract_numbers的函数,它接受一个字符串s作为输入。
    • 函数内部使用filter()函数和str.isdigit方法来提取字符串中的所有数字,并使用''.join()将它们连接成一个新的字符串。
  4. 处理“货号”列

    • 感觉最容易忽略的就是数据类型的转换,将df1df2中的“货号”列转换为字符串类型(以防万一它们原本是数字或其他类型)。
    • 使用apply()方法和之前定义的extract_numbers函数来处理这两个数据框的“货号”列,提取其中的数字部分。
  5. 合并数据框

    • 使用pd.merge()函数根据处理后的“货号”列合并df1df2
    • on='货号'指定了合并的键。
    • how='right'表示进行右连接合并,即保留df2中的所有行,并根据匹配的“货号”将df1中的数据添加到合并后的数据框中。如果需要保留df1中的所有行,则可以使用how='left'
  6. 查看和保存合并后的数据

    • 使用print(merged_df.head())打印合并后数据框的前几行,以便查看合并结果。
    • 使用merged_df.to_excel()方法将合并后的数据框保存到一个新的Excel文件中。index=False参数表示不将索引保存到Excel文件中。
    • 最后,打印一条消息确认合并和保存操作已完成。
import pandas as pd  # 读取Excel文件  
file_path1 = r'C:\Users\admin\Desktop\施华洛世奇531.xlsx'  
file_path2 = r'C:\Users\admin\Desktop\s519.xlsx'  
df1 = pd.read_excel(file_path1)  
df2 = pd.read_excel(file_path2)  # 定义一个函数来提取字符串中的数字部分  
def extract_numbers(s):  return ''.join(filter(str.isdigit, s))  # 应用这个函数到两个数据框的“货号”列,并创建新的列来保存提取的数字  
df1['货号'] = df1['货号'].astype(str).apply(extract_numbers)  
df2['货号'] = df2['货号'].astype(str).apply(extract_numbers)  # 基于新的数字货号列合并df1和df2  
merged_df = pd.merge(df1, df2, on='货号', how='right')  # 或者使用 how='left' 根据需要调整  # 查看合并后的数据框  
print(merged_df.head())  # 保存合并后的数据到新的Excel文件  
output_file_path = r'C:\Users\admin\Desktop\s531.xlsx'  
merged_df.to_excel(output_file_path, index=False)  # 不保存索引到Excel文件中  
print("合并完成并保存到Excel文件。")

这篇关于pandas处理两表合并的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032912

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

不删数据还能合并磁盘? 让电脑C盘D盘合并并保留数据的技巧

《不删数据还能合并磁盘?让电脑C盘D盘合并并保留数据的技巧》在Windows操作系统中,合并C盘和D盘是一个相对复杂的任务,尤其是当你不希望删除其中的数据时,幸运的是,有几种方法可以实现这一目标且在... 在电脑生产时,制造商常为C盘分配较小的磁盘空间,以确保软件在运行过程中不会出现磁盘空间不足的问题。但在

在C#中合并和解析相对路径方式

《在C#中合并和解析相对路径方式》Path类提供了几个用于操作文件路径的静态方法,其中包括Combine方法和GetFullPath方法,Combine方法将两个路径合并在一起,但不会解析包含相对元素... 目录C#合并和解析相对路径System.IO.Path类幸运的是总结C#合并和解析相对路径对于 C

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Python中处理NaN值的技巧分享

《Python中处理NaN值的技巧分享》在数据科学和数据分析领域,NaN(NotaNumber)是一个常见的概念,它表示一个缺失或未定义的数值,在Python中,尤其是在使用pandas库处理数据时,... 目录NaN 值的来源和影响使用 pandas 的 isna()和 isnull()函数直接比较 Na

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que