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

如何用Python Pandas不依赖索引修改CSV文件指定行的值?

问题排查与修复方案

原代码存在的核心问题

  • 匹配条件错误:更新行时用df['USERNAME'] == result,但result是取出的CARD_BALANCE数值,不是目标用户名,完全无法匹配到正确行
  • 无容错处理:如果login.user_name不存在于CSV的USERNAME列中,result['CARD_BALANCE'].values[0]会直接抛出索引越界异常
  • 缩进不规范:代码块缩进不一致,会触发Python语法错误

修复后的代码

import pandas as pd

df = pd.read_csv("dataframe.csv")
# 定位目标用户的行
target_rows = df[df['USERNAME'] == login.user_name]

# 先判断是否存在该用户
if not target_rows.empty:
    current_balance = target_rows['CARD_BALANCE'].values[0]
    if current_balance >= 20:
        new_balance = current_balance + 100
        # 用正确的用户名匹配更新行
        df.loc[df['USERNAME'] == login.user_name, "CARD_BALANCE"] = new_balance
        df.to_csv('dataframe.csv', index=False)
else:
    print(f"用户 {login.user_name} 不存在")

关键修改说明

  • 新增用户存在性判断:通过target_rows.empty检查是否找到目标用户,避免索引越界错误
  • 修正行匹配条件:更新时用login.user_name匹配USERNAME列,确保定位到正确的行
  • 规范变量命名:将a改为new_balance,result改为current_balance,提升代码可读性
  • 统一缩进格式:修正原代码的缩进混乱问题,符合Python语法规范

内容的提问来源于stack exchange,提问作者Kanishka.R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:40:30