我编写了一些将数据聚类到数据框中的脚本。因为我的 RAM 大小太小,无法一次容纳所有数据,所以我必须使用
df.to_pickle()
函数将其临时写入磁盘。当我想使用函数 pd.read_pickle(path_to_file)
再次读取数据时,脚本有时会崩溃并出现以下错误:
ValueError: invalid literal for int() with base 10: 'ASF'
有趣的是,这只发生在某些系统上,在我的一台电脑上,脚本运行没有错误,并且所有结果都是正确的。在另一个系统上,脚本不会运行并抛出上面提到的错误。我检查了数据框是否仅包含数值,是的。我还使用了相同的 conda 环境,正如我的第一个假设一样,错误可能取决于 python 或库版本。
同样有趣的是,错误出现在不同系统的不同
.pkl
文件上。但 ValueError 总是出现在符号上 'ASF'
我希望有人知道我可以在哪里寻找解决方案,因为这个脚本在所有系统上运行很重要。
提前谢谢您。
当您尝试使用不同的编码(如
pickle.loads(pickled_data.encode('latin1'))
)读取使用 Base64 编码的字符串时,可能会发生这种情况。首先尝试解码 Base64 编码的数据以获得原始的二进制数据。
pickled_data = base64.b64decode(pickled_data_b64)
data = pickle.loads(pickled_data)