【发布时间】:2022-01-27 08:22:12
【问题描述】:
我正在尝试将.rds file 转换为.feather file,以便在Python 中使用Pandas 阅读。
library(feather)
# Set working directory
data = readRDS("file.rds")
data_year = data[["1986"]]
# Try 1
write_feather(
data_year,
"data_year.feather"
)
# Try 2
write_feather(
as.data.frame(as.matrix(data_year)),
"data_year.feather"
)
Try 1 返回 Error: 'x' must be a data frame,而 Try 2 实际上写入了一个 *.feather 文件,但该文件一年的大小为 4.5GB,而原始 @ 987654337@ 文件的大小为 0.055GB 多年。
如何将文件转换为每年单独或非单独的*.feather 文件,同时保持足够的文件大小?
data 看起来像这样:
data_year 看起来像这样:
*更新
我愿意接受任何建议,以使数据可用于 NumPy/Pandas,同时保持适度的文件大小!
【问题讨论】:
-
data_year的长度为 576M,但它是dgCMatrix类的稀疏矩阵。当强制到 data.frame 时,它会变大,我没有看到避免它的方法。 -
非常感谢您的评论!是否有任何其他方法可以使数据在 NumPy/Pandas 中可用,同时保持适度的文件大小?
-
你可以在here找到你的答案。
-
@ErfanGhasemi 谢谢您的评论。
pyreadr.read_r('file.rds')返回LibrdataError: The file contains an unrecognized object。用户 mgalardini 通过您的链接的答案返回一个列表向量,其中每个项目都是一个RS4 object。我不知道那是什么。当然不是熊猫数据框。我无法通过您提供的链接找到答案。 -
也许不是从稀疏矩阵转换,您可以查看是否是一种 python 方法,以
Matrix::writeMM写出的稀疏矩阵格式读取编辑:您可以尝试使用docs.scipy.org/doc/scipy-0.14.0/reference/generated/… 或 docs.scipy.org/doc/scipy/reference/generated/… 取决于您使用 R 写出的格式