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

使用Pandas替换CSV文件中的值无效问题求助

问题原因与解决方法

你的代码修改了DataFrame里的数据,但根本没把修改后的内容写回CSV文件,所以磁盘上的文件自然不会有变化。另外还有两个小问题需要注意:

  • 你用csv.reader遍历找索引,再用pandas读文件,两者的索引可能不匹配(比如CSV有表头的话,csv.reader会把表头算成第一行,而pandas默认把表头排除在数据行之外,index-1的逻辑容易出错)
  • 如果没找到匹配的用户,变量i会未定义,执行时会报错

修正后的代码

import pandas as pd

def test2(fname, lname, amount):
    # 直接用pandas读取CSV,避免索引不一致
    df = pd.read_csv('clients.csv')
    
    # 找到匹配用户的行索引
    # 这里用精确匹配,如果你需要模糊匹配可以把==改成in
    mask = (df.iloc[:, 0] == fname) & (df.iloc[:, 1] == lname)
    matching_indices = df[mask].index
    
    if not matching_indices.empty:
        # 取第一个匹配的行索引
        i = matching_indices[0]
        df.iat[i, 6] = amount
        # 关键:把修改后的DataFrame写回CSV
        # 如果CSV有表头,index=False不要写索引列
        df.to_csv('clients.csv', index=False)
    else:
        print(f"未找到用户 {fname} {lname}")

关键说明

  • 用pandas自身的条件筛选找索引,比单独用csv.reader更可靠,避免索引错位
  • 必须调用df.to_csv()才能把内存里修改后的DataFrame保存到磁盘文件
  • 增加了未找到用户的判断,防止出现NameError

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:55:38