繁体   English   中英

如何逐行应用函数,并在每一步(追加)保存csv?

[英]How to apply function row by row, and save csv at each step (append)?

我正在使用以下脚本(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>]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM