excel Python-Pandas-如何使用python pandas Dataframe 中的条件将 Dataframe 的一个值替换为另一个值

b4qexyjb  于 2023-01-18  发布在  Python
关注(0)|答案(1)|浏览(201)

我有两个excel文件,例如:一、B. A是由候选人详细信息组成的主文件,包括个人信息驾驶执照等。B文件由候选人驾驶执照号码和屏蔽的执照号码组成。因此,我想在这里检查驾驶执照列的Excel表(原件)并Map到B页的原驾驶证号码上,取蒙面驾驶证号码粘贴在A页上。从而最终的A或A_备份表将不具有原始敏感信息。
Excel文件:
候选人姓名候选人驾驶执照号码和许多其他列... abc 12345678 bcd 45687348 cde
定义
吉尔83487587
b excel文件:候选人_驾驶证_编号被屏蔽的候选人_驾驶证_编号等多列12345678 82378973 45687348 37698262
输出:在python panda中,A文件许可证号替换为B文件屏蔽ID:例如:许可证编号:12345678替换为屏蔽id 82378973 B文件中不存在的许可证号将保持为空,空记录为空
候选人名称候选人驾驶执照编号屏蔽的ID和许多其他列(仅限A文件列)... abc 12345678 82378973 bcd 45687348 37698262
尝试了多种方式,但没有按预期工作和错误,因为没有代码放置在这里。

k3bvogb1

k3bvogb11#

您需要在公共列上连接两个数据框,并将其从结果数据框中删除。示例代码如下所示:

import pandas as pd

A = pd.read_excel("A.xlsx")
B = pd.read_excel("B.xlsx")

merged_df = pd.merge(A, B, left_on='Candidate_driving license_number', right_on='Candidate_driving license_number')

merged_df = merged_df.rename(columns={'Masked_Candidate_driving license_number': 'Masked_id'})

# write the final dataframe to an excel file
merged_df.to_excel("A_backup.xlsx", index=False)

示例:

A Excel file:
  Candidate_name  Candidate_driving_license_number Other_columns
0            abc                      12345678        value1
1            bcd                      45687348        value2
2            cde                      83487587        value3
3            def                      98765432        value4
4            ghi                      12348756        value5

B Excel file:
  Candidate_driving_license_number  Masked_Candidate_driving_license_number Other_columns
0                      12345678                                  82378973        value1
1                      45687348                                  37698262        value2
2                      83487587                                  98374927        value3
3                      98766321                                  12347896        value4
4                      12341234                                  98347562        value5

Output:
  Candidate_name  Candidate_driving_license_number Other_columns  Masked_id
0            abc                      12345678        value1    82378973
1            bcd                      45687348        value2    37698262
2            cde                      83487587        value3    98374927
3            def                      98765432        value4         NaN
4            ghi                      12348756        value5         NaN

您可能还需要删除包含敏感信息的列

相关问题