【发布时间】:2018-01-02 23:01:28
【问题描述】:
有什么方法可以使用 pandas 或 csv 模块将值写入给定 .csv 文件中的特定位置?
我尝试使用 csv_reader 读取文件并找到符合我要求的行,但我无法找到将文件中的值切换到我的方法。
我在这里想要实现的是我有一个包含名称和值的电子表格。我正在使用 JSON 更新来自服务器的值,之后我还想更新我的电子表格。
我想出的最新解决方案是创建一个单独的工作表,我将从中获取更新的数据,但是这个工作表不起作用,尽管没有将 dict 写入文件的顺序。
def updateSheet(fileName, aValues):
with open(fileName+".csv") as workingSheet:
writer = csv.DictWriter(workingSheet,aValues.keys())
writer.writeheader()
writer.writerow(aValues)
我将不胜感激任何指导和提示。
【问题讨论】:
-
您必须将所有数据读入内存。 (即
df = pandas.read_csv()),分配新值,并将所有数据保存到文件(即df.to_csv())。以类似的方式,您必须使用csv模块。 -
它可能有效,但我只需要覆盖特定字段(即第 1 列和第 5 列)。另一个字段使用彼此的数据来计算它们的值。
-
文件不是列表或字典 - 如果您想放置更长或更短的数据,它不会调整位置大小。如果您尝试放置较长的数据,那么它会覆盖其他单元格,如果您放置较短的数据,那么它会保留部分旧数据。您必须在内存中读取所有内容,更改第 1 列和第 5 列,然后重新写入。