pyreadr
Reads/writes R RData and Rds files into/from pandas data frames.
Decision gist · record as of 2026-08-14
Yes. pyreadr is actively maintained, has no known vulnerabilities, and solves a specific and common problem—reading R data files in Python without R installed. The AGPL-3.0-or-later license is a consideration for proprietary use, but poses no barrier for open-source or internal projects. Pre-compiled wheels make installation frictionless on standard platforms. Install it if you regularly work with R-generated datasets.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C compiler and zlib, bzip2, lzma libraries to build from source; pre-compiled wheels avoid this for standard platforms.
- Medium install friction due to compiled C extensions; however, pre-compiled wheels are available for Windows, macOS (x86_64 and ARM64), and Linux (x86_64 and aarch64) across Python 3.10–3.13, making installation straightforward on standard platforms.
- Maintenance is active with a recent release.
License · maintenance · safety
AGPL-3.0-or-later (agpl) — Licensed under AGPL-3.0-or-later, which requires that any modifications to the package and derivative works be released under the same license. This is a copyleft license; using it in proprietary software requires careful review of your distribution model.
last release 2026-04-13 (123 days) · last repo commit 2026-07-08 · 339 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 265,495 downloads/mo, #8,323 on PyPI
Alternatives
Verify before relying
import pyreadr
result = pyreadr.read_r('data.RData')
df = result['object_name'] # or result[None] for Rds files
# To write:
import pandas as pd
df = pd.DataFrame({'A': [1, 2], 'B': ['a', 'b']})
pyreadr.write_rdata('output.RData', df, df_name='dataset')- Whether xarray is truly required only for 3D arrays or if there are other use cases that need it
- Exact scope of R object types supported beyond data frames, tibbles, vectors, matrices, arrays, and tables
- Performance characteristics when reading or writing large files
What it is and what it does
pyreadr is a Python package that reads and writes R's native RData and Rds file formats, converting them to and from pandas DataFrames. It wraps the librdata C library and does not require R to be installed, making it a lightweight bridge between Python data workflows and R data archives. The package supports data frames, tibbles, vectors, matrices, arrays, and tables; R lists and S4 objects are not supported.
The package is built on pre-compiled C extensions and depends only on pandas at runtime. It offers both basic file I/O (read_r, write_rdata, write_rds) and utility functions for inspecting file contents (list_objects) and downloading remote files. Compression options (gzip with configurable levels) are available for writing. The implementation is mature, actively maintained, and widely used in data science workflows that need to interoperate with R-generated datasets.
Use it for
- Load R statistical analysis results or datasets into Python pandas for further processing or visualization
- Convert R data frames from collaborative projects into Python-native format without running R
- Write Python-generated DataFrames to RData or Rds format for sharing with R users or archival
- Batch import multiple R data objects from a single RData file into a Python analysis pipeline
- Stream R data from remote URLs directly into memory without intermediate disk storage
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
pyreadr is actively maintained, has no known vulnerabilities, and solves a specific and common problem—reading R data files in Python without R installed. The AGPL-3.0-or-later license is a consideration for proprietary use, but poses no barrier for open-source or internal projects. Pre-compiled wheels make installation frictionless on standard platforms. Install it if you regularly work with R-generated datasets.
Install
pyreadr on PyPI
Before you install
Medium install friction due to compiled C extensions; however, pre-compiled wheels are available for Windows, macOS (x86_64 and ARM64), and Linux (x86_64 and aarch64) across Python 3.10–3.13, making installation straightforward on standard platforms. Maintenance is active with a recent release.
Requires a C compiler and zlib, bzip2, lzma libraries to build from source; pre-compiled wheels avoid this for standard platforms.
License in practice
Licensed under AGPL-3.0-or-later, which requires that any modifications to the package and derivative works be released under the same license. This is a copyleft license; using it in proprietary software requires careful review of your distribution model.
Quickstart
import pyreadr
result = pyreadr.read_r('data.RData')
df = result['object_name'] # or result[None] for Rds files
# To write:
import pandas as pd
df = pd.DataFrame({'A': [1, 2], 'B': ['a', 'b']})
pyreadr.write_rdata('output.RData', df, df_name='dataset')
Verify before relying
- Whether xarray is truly required only for 3D arrays or if there are other use cases that need it
- Exact scope of R object types supported beyond data frames, tibbles, vectors, matrices, arrays, and tables
- Performance characteristics when reading or writing large files
Package facts
| License | AGPL-3.0-or-later agpl |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagepandas |
| Maintenance | Actively maintained 123 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 265,495 / month, #8,323 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Environment :: ConsoleIntended Audience :: Science/ResearchProgramming Language :: CProgramming Language :: CythonProgramming Language :: PythonTopic :: Scientific/Engineering |
Evidence: pyreadr-0.5.6-cp310-cp310-macosx_10_9_x86_64.whl; pyreadr-0.5.6-cp310-cp310-macosx_11_0_arm64.whl; pyreadr-0.5.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyreadr-0.5.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyreadr-0.5.6-cp310-cp310-win_amd64.whl; pyreadr-0.5.6-cp311-cp311-macosx_10_9_x86_64.whl; pyreadr-0.5.6-cp311-cp311-macosx_11_0_arm64.whl; pyreadr-0.5.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyreadr-0.5.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyreadr-0.5.6-cp311-cp311-win_amd64.whl; pyreadr-0.5.6-cp312-cp312-macosx_10_13_x86_64.whl; pyreadr-0.5.6-cp312-cp312-macosx_11_0_arm64.whl; pyreadr-0.5.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyreadr-0.5.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyreadr-0.5.6-cp312-cp312-win_amd64.whl; pyreadr-0.5.6-cp313-cp313-macosx_10_13_x86_64.whl; pyreadr-0.5.6-cp313-cp313-macosx_11_0_arm64.whl; pyreadr-0.5.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pyreadr-0.5.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pyreadr-0.5.6-cp313-cp313-win_amd64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “RData Rds to pandas”
- pyreadrReads and writes R RData and Rds files directly into pandas…
- rdataReads and writes R dataset files (.rda and .rds formats) in pure…
- types-boto3-rdsProvides type annotations and IDE autocompletion support for boto3…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also pyreadstat · rdata · fastparquet · gspread-dataframe · pandas-read-xml · pandavro · datacompy · gspread-pandas · pandas-td · awswrangler