如何通过pandas框架写入/更新CSV中的值

oyjwcjzk  于 2023-11-14  发布在  其他
关注(0)|答案(2)|浏览(146)

我是Python的新手,刚刚开始学习Pandas模块,所以如果我不知道答案,我不会感到惊讶。我正在尝试编写一个程序,使用Pandas编写和更新CSV文件(这是一个修改后的dnd点数购买计算器)。
这是我的一个类中的一个方法:

def update_character_as(name, ability_name, score):
    record = pandas.read_csv(f'{name} scores.csv')
    record.loc[ability_name] = score

字符串
到目前为止,它修改了能力得分,但不是在实际的.csv文件中。我需要打开.csv文件并使用.write吗?还是Pandas有我缺少的内置东西?

qvsjd97n

qvsjd97n1#

CSV在磁盘上,而框架在内存中,所以它们是完全独立的。如果你想将框架写入磁盘,请参阅pandas文档中标记为IO Tools(IO = input,output)的部分。

  • Paul H的评论,略有修改

具体来说,您需要DataFrame.to_csv

h43kikqp

h43kikqp2#

请创建CSV文件。在这里,{name} scores.csv => your_character scores.csv(下面是示例一)。
to_csv()将最后一个数据保存在同一个文件中。

验证码:

import pandas as pd

def update_character_as(name, ability_name, score):
    record = pd.read_csv(f'{name} scores.csv', index_col=0)

    # update the specified ability score. 'Strength' = 16
    record.loc[ability_name] = score

    # save the updated DataFrame back to the CSV file
    record.to_csv(f'{name} scores.csv')

update_character_as("your_character", "Strength", 16)

字符串

your_character scores.csv:

Ability,Score
Strength,14
Dexterity,12
Intelligence,10
Wisdom,8
Charisma,18

相关问题