You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Pandas计算两个DataFrame匹配列的相对百分比

解决方案:基于C列匹配计算相对百分比

嘿,这个需求用Pandas就能轻松搞定,我给你分步骤说明,还附上可直接运行的代码:

步骤1:合并两个DataFrame

首先我们需要把两个DataFrame按照C列进行匹配,这样就能把DataFrame1中对应行的目标列(你需求里提到的D列,或者示例里的B列)带到DataFrame2里,方便后续计算。

步骤2:计算相对百分比

根据你的公式 (DataFrame2目标列值 * 100) / DataFrame1对应列值,我们可以直接在合并后的DataFrame上做列运算,最后保留两位小数和示例结果一致。


完整代码(两种场景)

我注意到你给出的示例公式和需求描述有一点小差异:示例里是用DataFrame2的G/Z列除以DataFrame1的B列,但需求描述里说的是D列。我把两种场景的代码都写出来,你可以按需选择:

场景1:按照需求描述,除以DataFrame1的D列

import pandas as pd

# 初始化你的两个DataFrame
df1 = pd.DataFrame({
    'A': [1.0, 3.0],
    'B': [49.453125, 48.770833],
    'C': [2.0, 4.0],
    'D': [67.767857, 43.583333]
})

df2 = pd.DataFrame({
    'A': [1.0, 1.0],
    'E': [807, 909],
    'F': [1.0, 2.0],
    'G': [34.375000, 1.750000],
    'C': [2.0, 2.0],
    'H': [808, 910],
    'X': [1.0, 2.0],
    'Z': [35.375000, 48.750000]
})

# 基于C列合并,只保留df1里的C和D列
merged_df = pd.merge(df2, df1[['C', 'D']], on='C', how='left')

# 计算G、Z列相对于D列的百分比,保留两位小数
merged_df['G_vs_D_percent'] = (merged_df['G'] * 100 / merged_df['D']).round(2)
merged_df['Z_vs_D_percent'] = (merged_df['Z'] * 100 / merged_df['D']).round(2)

# 查看结果
print("基于D列的计算结果:")
print(merged_df[['C', 'G', 'Z', 'D', 'G_vs_D_percent', 'Z_vs_D_percent']])

运行后输出:

基于D列的计算结果:
     C       G       Z          D  G_vs_D_percent  Z_vs_D_percent
0  2.0  34.375  35.375  67.767857           50.73           52.20
1  2.0   1.750  48.750  67.767857            2.58           71.94

场景2:按照示例公式,除以DataFrame1的B列

如果你的实际需求是和示例一致,除以B列的话,只需要修改合并的列和计算逻辑:

# 基于C列合并,只保留df1里的C和B列
merged_df = pd.merge(df2, df1[['C', 'B']], on='C', how='left')

# 计算G、Z列相对于B列的百分比,保留两位小数
merged_df['G_vs_B_percent'] = (merged_df['G'] * 100 / merged_df['B']).round(2)
merged_df['Z_vs_B_percent'] = (merged_df['Z'] * 100 / merged_df['B']).round(2)

# 查看结果
print("基于B列的计算结果:")
print(merged_df[['C', 'G', 'Z', 'B', 'G_vs_B_percent', 'Z_vs_B_percent']])

运行后输出:

基于B列的计算结果:
     C       G       Z          B  G_vs_B_percent  Z_vs_B_percent
0  2.0  34.375  35.375  49.453125           69.51           71.53
1  2.0   1.750  48.750  49.453125            3.54           98.58

内容的提问来源于stack exchange,提问作者honeymoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:05:05