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

如何用另一DataFrame的单列对当前DataFrame多列做除法运算?

DataFrame逐列与单列对应行除法的最优解法

构造示例数据

先还原你的两个DataFrame:

import pandas as pd

df1 = pd.DataFrame({
    'Column A': [10, 20],
    'Column B': [40, 50],
    'Column C': [30, 20]
})

df2 = pd.DataFrame({
    'Column D': [2, 10]
})

问题原因

直接用df1.div(df2)会返回全NaN的结果,因为pandas的div方法默认按列名对齐,而df1和df2没有同名列,无法匹配计算。

最优解法

只需将df2的单列转为Series,让pandas按行索引对齐,就能实现逐列对应行的除法:

# 提取df2的单列作为Series,指定axis=0确保行对齐
result = df1.div(df2['Column D'], axis=0)
# 重命名列名到你期望的名称
result.columns = ['Column E', 'Column F', 'Column G']

最终结果

运行后得到的result就是你要的输出:

Column EColumn FColumn G
52015
252

这种方法不需要遍历列,完全利用pandas的向量化运算,效率远高于循环遍历。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:47:05