Python pandas to_csv 导致 OSError : [Errno 22] Invalid argument

标签 python pandas csv

我的代码如下:

import pandas as pd
import numpy as np

df = pd.read_csv("path/to/my/infile.csv")
df = df.sort_values(['distance', 'time'])
df.to_csv("path/to/my/outfile.csv")

此代码成功从 infile.csv(一个 3GB csv 文件)读取数据,对其进行排序,但在尝试写入 outfile.csv 时失败,并出现以下错误:

OSError                                   Traceback (most recent call last)
<ipython-input-10-3a5c8279658d> in <module>
----> 1 df.to_csv('/Users/joaomatos/Desktop/cluster22_sorted_training.csv',index=False)

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas/core/frame.py in to_csv(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, line_terminator, chunksize, tupleize_cols, date_format, doublequote, escapechar, decimal)
   1743                                  doublequote=doublequote,
   1744                                  escapechar=escapechar, decimal=decimal)
-> 1745         formatter.save()
   1746 
   1747         if path_or_buf is None:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pandas/io/formats/csvs.py in save(self)
    164                                          encoding=encoding,
    165                                          compression=self.compression)
--> 166                 f.write(buf)
    167                 f.close()
    168                 for _fh in handles:

OSError: [Errno 22] Invalid argument

我的问题是为什么?

感谢您的帮助

最佳答案

在探索了很多选项之后,包括将 pandas 库更新到最新版本(截至今天为 1.2.4)、将引擎更改为“python”或“c”、调试等,我终于发现了问题所在是:

我将 CSV 文件存储在一个不断与 OneDrive 实时同步的文件夹中。

是的!我发现托盘图标变得疯狂,并且 OneDrive 正在消耗资源,同时我正在对我的宠物项目进行算法交易回溯测试。 我暂停了同步,然后就再也没有失败过!!

我想您还可以从 OneDrive 中排除该文件夹,或者只是更改 CSV 存储/写入/访问的位置。

关于Python pandas to_csv 导致 OSError : [Errno 22] Invalid argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54811910/

相关文章:

python - unident 不匹配任何外部缩进级别,我需要更改什么?

python - 与标点符号匹配整个字符串(使用\b 的问题)

python - 从父类B使用父类A的方法

python-3.x - 每次满足特定条件时,如何找到行之间的最高值?

python - 使用 python 将数据文件从源工作表转换为目标工作表格式。

python - 如何从 CSV 模块使用 Python 迭代器

python - KIVY:按下按钮时在子布局中添加按钮(on_release)

python - Pandas groupby 日期时间索引,可能的错误

python - 在 Pandas 数据框中模糊匹配两个字符串的最快方法

python - 使用 CSV 文件的最小学习曲线语言