Python Pandas条件计算:基于原料占比计算棉花产量
简洁实现方案
不用枚举所有组合,用Pandas的向量化操作就能轻松搞定,步骤如下:
第一步:拆分原料与占比列
先把原料列(RM1-RM3)和对应的占比列(RM1%-RM3%)单独拎出来,方便后续操作:# 假设你的DataFrame名为df raw_materials = ['RM1', 'RM2', 'RM3'] percentages = ['RM1%', 'RM2%', 'RM3%']第二步:计算每行Cotton原料的占比总和
用原料列等于"Cotton"的判断结果,筛选出对应占比列的值,再按行求和(非Cotton对应的占比会被设为NaN,求和时自动忽略):cotton_total_percent = df[percentages].where(df[raw_materials] == 'Cotton').sum(axis=1)第三步:生成目标列
把占比总和乘以Prod(kg/h)再除以100,就是你要的结果。如果想让不含Cotton的行显示0,就加.fillna(0):# 不含Cotton的行结果为NaN df['New Column Cotton Prod'] = (cotton_total_percent * df['Prod(kg/h)']) / 100 # 或者让不含Cotton的行显示0 df['New Column Cotton Prod'] = (cotton_total_percent * df['Prod(kg/h)'] / 100).fillna(0)
整个过程都是Pandas原生的向量化运算,既简洁又高效,完全不用手动枚举所有可能的Cotton组合。
内容的提问来源于stack exchange,提问作者John Luke
相关产品推荐
相关产品推荐

