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

如何将DataFrame某列乘固定值后除以另一列生成新ratio_kcal/kg列

问题原因

你的原有代码存在两处问题:

  • 运算逻辑不符合需求:仅对两列做了乘法运算,没有实现「日供应千卡值乘365后除以年供应千克值」的目标逻辑
  • 采用iterrows遍历的方式效率极低,且容易出现索引错位问题,pandas原生支持更高效的矢量化列运算

可行解决方案

步骤1:(可选)转换列数据类型

如果你的两列原始数据是字符串格式,先转为数值类型避免计算报错:

import pandas as pd
import numpy as np

new_table["Food supply (kcal/capita/day)"] = pd.to_numeric(new_table["Food supply (kcal/capita/day)"], errors='coerce')
new_table["Food supply quantity (kg/capita/yr)"] = pd.to_numeric(new_table["Food supply quantity (kg/capita/yr)"], errors='coerce')

步骤2:直接计算生成新列

直接对整列做矢量化运算即可自动生成新列:

new_table["ratio_kcal/kg"] = (new_table["Food supply (kcal/capita/day)"] * 365) / new_table["Food supply quantity (kg/capita/yr)"]

步骤3:(可选)处理异常值

如果存在除数为0的情况,计算会得到无穷大值,可统一替换为空值:

new_table["ratio_kcal/kg"] = new_table["ratio_kcal/kg"].replace([np.inf, -np.inf], np.nan)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:06:06