Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NotImplementedError:不支持文本模式,请在s3fs中使用mode='wb'并管理字节_Python_Pandas_Jupyter Notebook_Amazon Sagemaker_Python S3fs - Fatal编程技术网

Python NotImplementedError:不支持文本模式,请在s3fs中使用mode='wb'并管理字节

Python NotImplementedError:不支持文本模式,请在s3fs中使用mode='wb'并管理字节,python,pandas,jupyter-notebook,amazon-sagemaker,python-s3fs,Python,Pandas,Jupyter Notebook,Amazon Sagemaker,Python S3fs,我知道有一个类似的问题,但它是更一般的,而不是这个方案的具体问题。我正在将Sagemaker Jupyter笔记本中的pandas数据帧保存到S3中的csv中,如下所示: df.to_csv('s3://bucket/key/file.csv', index=False) 但是,我得到以下错误: NotImplementedError: Text mode not supported, use mode='wb' and manage bytes 代码或多或少是我从S3读取csv,对其进行一

我知道有一个类似的问题,但它是更一般的,而不是这个方案的具体问题。我正在将Sagemaker Jupyter笔记本中的pandas数据帧保存到S3中的csv中,如下所示:

df.to_csv('s3://bucket/key/file.csv', index=False)
但是,我得到以下错误:

NotImplementedError: Text mode not supported, use mode='wb' and manage bytes
代码或多或少是我从S3读取csv,对其进行一些预处理,然后将其保存到S3。我可以通过以下方式从S3成功读取csv:

df.read_csv('s3://bucket/key/file.csv')
我试图保存到S3的对象实际上是pandas.core.frame.DataFrame

在笔记本上我可以看到使用!pip显示我有pandas 0.24.2和s3fs 0.1.5的包

有什么问题吗

你能试试吗

df.to_csv("s3://bucket/key/file.csv", index=False, mode='wb')

它会修正你的错误。默认模式是w,它以文本而不是字节的形式写入文件系统。其中,as s3期望数据为字节。因此,在将数据帧作为csv写入文件系统时,必须将模式指定为wbwrite字节。

我刚刚遇到了这个问题

原因似乎是有一个旧版本的熊猫。跑

!pip install --upgrade pandas
在你的Jupyter笔记本里


您可能拥有旧版本的Pandas的原因是,如果您关闭并重新启动您的AWS机器-AWS环境中有旧版本的Pandas,这就是发生在我身上的情况。这个问题是。

您可以添加更多的代码来提供一些上下文吗?可能是Pandas 0.24.2中的一个常见问题?看:@Jamie我加了一点解释,希望是enough@AlastairMcCormack这很有趣,thanksAnd建议在0.25.x中修复它,然后它抛出错误TypeError:需要一个类似字节的对象,而不是'str'。这很奇怪,因为我一直在使用很多S3F将CSV与pandas一起保存到s3,而且我从来没有显式地将mode='wb'输入,我今天遇到了同样的问题。TypeError:需要一个类似字节的对象,而不是'str',有人知道发生了什么吗?AWS改变了什么吗?