python 实现excel两张表关联

文章介绍了如何使用Python的pandas库来处理Excel文件,通过`pd.read_excel`读取不同sheet的数据,然后利用`pd.merge`函数基于特定列(登记号)将两张表格进行关联合并,最后将合并后的数据保存为新的Excel文件,以便后续数据分析和建模使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有一个这样的需求,想要实现2张excel表的关联,当然使用sql语句是很容易的。这里用python解决。当然还有其他的办法也可以解决。特别注意的是在读取数据时pd.excel和pd.csv区别,要读取指定的sheet时。注意!!!
import pandas as pd
#右表获取
data1 = pd.read_excel(r’F:2023-04-27\汇总数据-F.xlsx’,sheet_name=‘终2’)
data1_ = data1.loc[:,[‘登记号’, ‘淋巴结增大’, ‘手术类型’, ‘手术方式’, ‘术中出血量’, ‘术中并发症’, ‘术后辅助 治疗方式’, ‘放疗次数’, ‘化疗次数’, ‘分化程度’, ’ FIGO分期’, ‘组织类型’, ‘肿瘤最大直径.1’, ‘浸润深度’, ‘宫颈间质浸润’, ‘脉管浸润’, ‘附件浸润’, ‘腹主动脉旁淋巴结转移个数’, ‘盆腔淋巴结转移个数’, ‘转移’, ‘腹腔冲洗液有无癌细胞’, ‘Ki67’, ‘ER’,
‘PR’, ‘MSH-2’, ‘MSH-6’, ‘PMS-2’, ‘MLH-1’, ‘P16’]]
#print(data1_.head())
#print(data1_.columns)
#左表获取
data2 = pd.read_excel(r’F:\2023-04-27\现病史+个人史+检验.xlsx’,sheet_name=‘现病史+个人史+检验’)
#print(data2.shape)
#print(data2.head())
#将左右2张表关联 这里用pd.merge()
data3 = pd.merge(left=data2,right=data1_,on = “登记号” , how=‘left’)
print(data2.shape)
print(data3.shape)
print(data3.head())
#将数据保存下来,后续建模使用
data3.to_excel(r’F:\ping\2023-04-27\合并.xlsx’)

### 使用Pandas库对比和筛选两个Excel文件中的数据 为了完成这一任务,可以利用`pandas`库的强大功能来加载、操作并比较来自不同Excel文件的数据。下面介绍一种通用的方法来进行两份Excel文档间特定条件下的数据匹配与筛选。 #### 加载必要的库 首先安装并导入所需的Python包: ```python import pandas as pd ``` #### 读取Excel文件 假设存在两个分别名为`fileA.xlsx`和`fileB.xlsx`的Excel文件,其中各含有一张工作。通过指定路径参数以及sheet名称(如果有多个工作),可以从这些文件中提取所需的工作作为DataFrame对象[^1]。 ```python df_a = pd.read_excel('path/to/fileA.xlsx', sheet_name='SheetName') df_b = pd.read_excel('path/to/fileB.xlsx', sheet_name='SheetName') ``` #### 数据预处理 确保要比较的关键字段具有相同的命名方式,并且格式一致;对于日期时间类型的列可能还需要转换成统一的时间戳形式以便后续运算。这里假定我们关心的是基于某些共同键值(比如ID或其他唯一标识符)进行记录级别的对照,则应先确认双方都含有这样的索引列[^2]。 #### 合并与去重 使用merge()函数按照设定好的关键字连接两张,在此过程中可以选择inner join只保留交集部分或是outer join获取全部组合情况。另外还可以设置indicator=True选项查看具体的合并关系类别。最后去除重复项以获得干净的结果集合[^3]。 ```python merged_df = df_a.merge(df_b, on=['common_key'], how='inner', indicator=True) unique_records = merged_df.drop_duplicates(subset=['common_key']) ``` #### 条件过滤 根据实际需求定义逻辑达式应用于整个DataFrame之上实施进一步的选择过程。例如想要找出所有满足某条业务规则——即某个属性超过给定量级的所有实例时,可采用布尔索引来达成目标。 ```python filtered_data = unique_records[(unique_records['column_of_interest'] > threshold_value)] ``` 以上就是关于如何运用Python `pandas`库执行跨Excel文档的数据关联分析及初步清理工作的概述。当然具体情况还需视项目本身而定,上述代码片段仅提供了一种基础框架供参考调整优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值