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

如何用Python计算DataFrame指定列与另一DataFrame数值列的差值?

解决方法:生成包含差值列与Group列的df3

需求说明

现有两个DataFrame:df1和df2,需生成df3完成以下操作:

  • 计算df2中column_1至column_30共30个数值列与df1的column_X的差值
  • 保留df2中的Group列

生成df1和df2的代码

import pandas as pd 
from random import uniform
import numpy as np

# 生成df1
data = np.random.uniform(15,40, size=(60, 2))
df1 = pd.DataFrame(data, columns=['column_A','column_B'])
df1['column_X'] = df1.mean(axis=1)
df1

# 生成df2
data = np.random.uniform(10.5,32.8, size=(60, 30))
df2 = pd.DataFrame(data, columns=['column_1','column_2','column_3','column_4','column_5',
                                'column_6','column_7','column_8','column_9','column_10',
                               'column_11','column_12','column_13','column_14','column_15',
                               'column_16','column_17','column_18','column_19','column_20',
                               'column_21','column_22','column_23','column_24','column_25',
                             'column_26','column_27','column_28','column_29','column_30',])

df2["Group"] = pd.DataFrame(np.repeat(['A','B','C'], 20, axis=0))
# 将Group列移至首位
col = df2.pop('Group') 
df2.insert(0, 'Group', col)  

df2

高效生成df3的代码

无需手动逐个列计算,用批量处理更简洁:

# 提取df2的数值列(排除首列Group)
numeric_cols = df2.columns[1:]

# 批量计算差值,并重命名列名
diff_df = df2[numeric_cols].sub(df1['column_X'], axis=0)
diff_df.columns = [f'col_{i}X_sub' for i in range(1, 31)]

# 拼接Group列与差值列得到df3
df3 = pd.concat([df2['Group'], diff_df], axis=1)

代码说明

  • df2[numeric_cols].sub(df1['column_X'], axis=0):利用Pandas的sub方法,按行让df2每个数值列减去df1的column_X,自动完成30列的批量计算
  • diff_df.columns = [f'col_{i}X_sub' for i in range(1, 31)]:将差值列统一重命名为col_1X_sub至col_30X_sub
  • pd.concat([df2['Group'], diff_df], axis=1):横向拼接Group列与所有差值列,得到最终df3

如果需要按示例的手动循环方式(适合理解原理):

# 创建df3并添加Group列
df3 = pd.DataFrame(df2['Group'].copy())

# 循环计算每列差值
for i in range(1, 31):
    df3[f'col_{i}X_sub'] = df2[f'column_{i}'] - df1['column_X']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:17