簡體   English   中英

Python 3中加載一個.RDS文件

[英]Loading a .RDS file in Python 3

我有一個 RDS 格式的數據集,我在 RStudio 管理,但我想在 Python 打開它進行分析。 能不能把這種格式打開成Python?

我已經嘗試了以下代碼:

pip install pyreadr

import pyreadr

result = pyreadr.read_r('/path/to/file.Rds') 

但是,我得到一個

MemoryError:無法為形狀為 (2483385,) 且數據類型為 float64 的數組分配 18.9 MiB。

我能做什么?

Pyreadr 是 C 庫 librdata 的包裝器,而 librdata 對 R 向量可以具有的大小有硬編碼限制。 舊版本的限制曾經很低,但現在增加了。 您的矢量在舊版本中會失敗,但在最近的版本中應該可以工作,所以請檢查您使用的是不是最新版本。

如果這沒有幫助,那么它可能是一個錯誤。 如果您可以共享該文件,請在 github 中提交問題。

這里有一個鏈接到 github librdata 和 pyreadr 中的舊問題(理論上現在已經解決)

https://github.com/WizardMac/librdata/issues/19 https://github.com/ofajardo/pyreadr/issues/3

編輯:

該限制現已在 pyreadr 0.3.0 中永久刪除。 現在這不再是問題了。

據我所知,您可以將數據存儲到此鏈接中提到的 pandas dataframe。

第二個選項(鏈接

如何在 Python 中顯式釋放 memory?

如果您編寫了一個 Python 程序,該程序作用於一個大型輸入文件以創建幾百萬個表示的對象,並且它占用了大量的 memory 並且您需要最好的方法來告訴 Python 您不再需要某些數據,並且可以釋放它? 這個問題的簡單答案是:

使用 gc.collect() 強制垃圾收集器釋放未引用的 memory。

我希望這能回答你的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM