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

如何用if条件语句按另一列条件修改DataFrame列值?

问题解决方法

你的代码有两个关键问题导致没有效果:

  • 错误地把判断结果包裹成了列表([row['Text_Count'] >= 50]),这是一个包含布尔值的列表,永远不可能等于True
  • iterrows()返回的row是原DataFrame的副本,直接修改row['big']不会同步到原数据

下面是两种用if条件实现需求的正确写法:

方法一:循环中通过索引修改原DataFrame

for index, row in df3.iterrows():
    if row['Text_Count'] >= 50:
        df3.loc[index, 'big'] = 'Yes'

方法二:使用apply结合if条件

df3['big'] = df3.apply(lambda row: 'Yes' if row['Text_Count'] >= 50 else row['big'], axis=1)

注意:虽然可以用上述if条件的方式实现,但Pandas官方更推荐你一开始知道的向量化操作(df3.loc[df3['Text_Count'] >= 50, 'big'] = "Yes"),因为循环的执行效率远低于向量化操作,数据量越大差异越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:05:50