如何通过Pandas DataFrame写入或更新CSV文件中的值
解决Pandas修改CSV后无法同步到文件的问题
你现在的问题是只修改了内存里的DataFrame对象,没把修改后的数据写回原CSV文件——完全不用原生的.write()方法,Pandas自带了to_csv()方法搞定这个事。
先给你修正后的代码:
def update_character_as(name, ability_name, score): # 读取CSV到DataFrame record = pandas.read_csv(f'{name} scores.csv') # 定位到对应能力的行,修改分数(假设你的CSV有ability_name和score两列) record.loc[record['ability_name'] == ability_name, 'score'] = score # 将修改后的DataFrame写回原CSV文件,覆盖原有内容 record.to_csv(f'{name} scores.csv', index=False)
关键说明:
- 原代码里你只操作了内存中的
record,没有执行写入步骤,所以本地文件不会有任何变化 to_csv()是Pandas专门用于导出DataFrame到CSV的方法,index=False是避免把DataFrame的索引列写入CSV(如果你的CSV不需要索引列就加上这个参数)- 补充:如果你的CSV是把能力名作为行索引的(比如读取时用了
pandas.read_csv(..., index_col='ability_name')),那原代码的record.loc[ability_name] = score是对的,只需要在最后加上record.to_csv(f'{name} scores.csv')即可,此时如果不想保留索引列,还是要加index=False
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

