我正在使用以下脚本(Python 3),目的是
- 逐行应用函数并
- 将每行结果写入 csv。
更准确地说,我只是想将每一行附加到现有文件中。
代码:
with open('file.csv', 'a') as f:
df['newcolumn'] = df.apply(some_function, axis=1, result_type='expand')
df.to_csv(f, mode='a', header=f.tell()==0, encoding='utf-8', index=False)
此代码的问题:显然,脚本不会逐行写入 *.csv,而是仅在计算所有行时创建完整的 csv。对于脚本中的任何错误,这意味着它最终的内容为零。
如何重写脚本,以便 file.csv 在每一步中更新,并且在完成之前不为空?
谢谢!
最佳答案
您可以更改函数的代码,以便在出现问题时返回一些默认值或后备值,通过执行此操作,您可以通过一次调用将数据帧保存为 csv。
def some_function(row):
try:
#return your results of processing
except:
#return a default, fallback or None if error occurred
但这将保存您的所有行,如果您不希望使用某些条件过滤数据框,则将其保存为 csv。像这样的东西:
df[df['newcolumn'] != <Some Value>]
关于python - 如何逐行应用函数,并在每一步保存 csv(追加)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443382/