首页 > 解决方案 > 将 Pickle 数据(python)读入 R 后数字发生变化

问题描述

我有一个大型数据集,其中嵌入了当前存储为 pickle 文件的列表/字典中的 unix 纪元日期。我尝试使用 reticulate 包 vis py_load_object() 函数将泡菜文件导入 R。除了 unix 纪元日期(以毫秒为单位)之外,其他一切似乎都很好。

我得到了非常奇怪的整数转换。例如,694137600000 的纪元日期在 R 中被读取为 -1647101952。我想知道是否有解释和解决方法。

谢谢!

标签: pythonrpicklereticulate

解决方案


如果没有最小的可重现示例,很难帮助您,但这里有一些想法:

  • 您可以取消腌制并将文件转换为pandasPython 脚本中的数据框。source_python函数 from会将其reticulate 作为 R 数据框导入。有关类型转换的更多信息,请参阅文档: rstudio/reticulate
  • 始终可以将文件取消腌制并导出为通用格式,例如csv使用 Python,然后将其导入 R。这样,您可以绕过reticulate,这并不总是一个有效的选择。

另请注意,在处理 R 中的 13 位数字时,您可能需要一些帮助。您可能bit64会对此包感兴趣。


推荐阅读