【问题标题】:Writing value to given filed in csv file using pandas or csv module使用 pandas 或 csv 模块将值写入 csv 文件中的给定文件
【发布时间】: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 列,然后重新写入。

标签: python excel pandas csv


【解决方案1】:

你可以试试这种方式来操作指定的csv文件

import pandas as pd  
a = ['one','two','three']  
b = [1,2,3]  
english_column = pd.Series(a, name='english')  
number_column = pd.Series(b, name='number')  
predictions = pd.concat([english_column, number_column], axis=1)   
save = pd.DataFrame({'english':a,'number':b})  
save.to_csv('b.csv',index=False,sep=',')  

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 2015-08-06
    • 2023-03-25
    • 2014-12-25
    • 2016-12-30
    • 1970-01-01
    相关资源
    最近更新 更多