我建立了一个网页抓取类,现在正试图编写平均成本& &;使用此方法为CSV文件添加其他值——
def avg_data_to_csv(self):
avg_data = self.avg_data
df = pd.DataFrame(avg_data, columns=['Location', 'Average Price', 'Average Price per SQFT'])
csv = df.to_csv('AVG_DATA.csv', index=False)
return csv
然后我编写了另一个方法,每次运行程序时都将更新的平均值添加到同一个csv文件的新行中——
def add_to_avg_csv(self):
new_data = self.avg_data
with open('AVG_DATA.csv', 'a') as obj:
writer_object = csv.DictWriter(obj, fieldnames=self.avg_data)
writer_object.writerow(new_data)
obj.close()
然而,当我测试这个时,我的csv文件看起来像这样-
运行两次后的csv文件
我不知道如何在没有括号的情况下添加数据。在向文件中添加新数据时,如何删除列表括号呢?
由于您正在使用writerow(),最简单的方法是您的函数avg_data_to_csv()返回您的新数据记录的字符串,而不是一行数据框。
另一种方法是使用pandas打开'AVG_DATA.csv',将avg_data_to_csv()的输出concat/追加,然后保存为'AVG_DATA.csv'。