【发布时间】:2022-11-26 11:32:39
【问题描述】:
我正在为一个应用程序开发一个模拟后端;练习面向对象。
我正在尝试替换 .csv 表中的值,一切似乎都很顺利,直到最后代码根本没有改变任何东西。我已经尝试调试,如下图所示,它显示我使用的值是正确的
def test2(fname, lname, amount):
# Open csv
with open('clients.csv','r') as f:
read = csv.reader(f)
# Find index of client
for index, row in enumerate(read):
if fname in row[0]:
if lname in row[1]:
i = index - 1
df = pd.read_csv('clients.csv')
df.iat[i,6] = amount
使用 print(df.iloc[i,6]) 给我想要更改的值,但使用 df.iat[i,6] = amount 什么都不做。
(对不起,如果这看起来很乱,我是新来在这里提问的!)
【问题讨论】:
-
为什么你用不同的方法奇怪地读取文件两次?
-
您只想更改内存中数据帧的值,还是要更改实际 csv 文件中的值?
-
@tripleee 使用标准 csv 读取来查找客户端的行索引,因为我以前知道这一点,并且我认为我会使用 pandas,因为它似乎更容易对数据进行进一步的工作 XD
-
@JohnGordon 在实际文件中。比如说,无论出于何种原因,我都想创建另一个函数来重新读取文件,然后它会显示适当的值
-
分配
df.iat[i,6] = amount只会影响内存中的数据帧。它不会更新原始 csv 文件。