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

Python&Pandas如何编写条件语句按规则计算整列数据生成新列

实现方案

方法1:基于你现有loc写法的补全

你原代码中的条件>=3和需求「大于3才乘3」不符,调整后完整代码如下:

import pandas as pd

df = pd.read_csv("test.csv")
# 给error_count大于3的行赋值为原数值乘3
df.loc[df['error_count'] > 3, 'error_count_score'] = df['error_count'] * 3
# 剩余不满足条件的行填充为0
df['error_count_score'] = df['error_count_score'].fillna(0).astype(int)

astype(int)是为了避免填充NaN后默认转为浮点格式,和你预期的整数输出一致。

方法2:更简洁的np.where写法

逻辑和你提供的Excel IF公式完全对应,代码更精简,也是Pandas处理条件赋值的常用写法:

import pandas as pd
import numpy as np

df = pd.read_csv("test.csv")
# 语法规则:np.where(判断条件, 条件成立时的返回值, 条件不成立时的返回值)
df['error_count_score'] = np.where(df['error_count'] > 3, df['error_count'] * 3, 0)

以上两种都是向量化操作,性能远高于逐行遍历的apply方法,数据量较大时更推荐使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 18:18:02