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

Python循环代码在Colab正常运行,Jupyter无报错但未修改数据

问题解决:Jupyter中pandas循环修改数据不生效

问题根源

使用df.iterrows()遍历返回的row是原DataFrame的副本,而非原数据的引用。修改row的内容只会改动这个副本,不会同步到原df中。Colab里偶然生效属于环境特殊表现,并非正确用法。

修复方案

方案1:通过.loc直接更新原DataFrame

循环时定位原df的单元格进行修改,确保改动同步到原数据:

for index, row in df.iterrows():
    # 同时移除空格和逗号,匹配预期效果
    df.loc[index, 'Actors'] = [x.lower().replace(' ','').replace(',','') for x in row['Actors']]
    df.loc[index, 'Director'] = ''.join(row['Director']).lower().replace(' ','').replace(',','')

方案2:用apply高效处理(推荐)

pandas更推荐向量化操作替代循环,效率更高且不易出错:

# 处理Actors列
df['Actors'] = df['Actors'].apply(lambda lst: [x.lower().replace(' ','').replace(',','') for x in lst])

# 处理Director列
df['Director'] = df['Director'].apply(lambda lst: ''.join(lst).lower().replace(' ','').replace(',',''))

效果验证

修改后:

  • Actors列的[Tim Robbins, Morgan Freeman, Bob Gunton]会转为['timrobbins', 'morganfreeman', 'bobgunton']
  • Director列的[Frank, Darabont]会转为'frankdarabont'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:19:53