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

标签 python python-3.x pandas csv file-writing

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

相关文章:

python - 相同的字符串在 python 中不匹配 - 空格问题(前导/尾随空格已删除)

python - 将 csv 中的字符串条目写入 python 中的数组?

python - Python 中的 UTCNow 偏移

python - 如何将图形调用打印为树?

python - np.where 返回错误的索引

python - 在每行中查找具有重复值的列并获取相关值

python - ImportError : symbol __res_maybe_init version GLIBC_PRIVATE not defined in file libc. so.6 带链接时间引用

python - 你如何解决 pyinstaller for scipy 中的 'hidden imports not found!' 警告?

python - 如何在 Python 列表中的特定元素之后删除列表中的元素(切片不适用)

python - 被 pandas 条件和/或 boolean 索引难住了