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

如何在Pandas DataFrame中逐行计算百分比,指定行返回结果其余行返回No

解决Pandas DataFrame指定行计算百分比的问题

需求明确:给名为df的DataFrame新增列E,仅对指定行(示例中A列为X的行)计算百分比(公式为该行D列值除以Y行的D列值,结果保留两位小数),其余行填充'No'。

输入示例

ABCD
X50025050.00
Y98070071.42

输出示例

ABCDE
X50025050.0070.08
Y98070071.42No

代码实现

import pandas as pd
import numpy as np

# 示例DataFrame创建(若已有可跳过)
data = {'A': ['X', 'Y'], 'B': [500, 980], 'C': [250, 700], 'D': [50.00, 71.42]}
df = pd.DataFrame(data)

# 获取Y行的D列数值作为计算除数
y_d_value = df.loc[df['A'] == 'Y', 'D'].iloc[0]

# 生成目标列E
df['E'] = np.where(df['A'] == 'X', round(df['D'] / y_d_value * 100, 2), 'No')

print(df)

代码说明

  1. 先定位A列为Y的行,提取其D列数值作为百分比计算的除数;
  2. 用np.where做条件判断:当A列为X时,执行(D列值/除数)*100的计算并保留两位小数,其余行直接填充'No';
  3. 直接将计算结果赋值给新列E,完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:00:53