Since rpy2 release 2.4.0 converting data frames back and forth between rpy2
and pandas
is included as an optional module. With it, no need to convert explicitly, it will be done on the fly.
The documentation contains examples (also available as a Jupyter notebook - link available near the top of the page):
https://rpy2.github.io/doc/latest/html/pandas.html#interoperability-with-pandas
Note: The original answer to this question recommended the following.
from rpy2.robjects import pandas2ri
pandas2ri.activate()
If wishing to convert explicitly for any reason, the functions are pandas2ri.py2ri()
and pandas2ri.ri2py()
(they were pandas2ri.pandas2ri()
and pandas2ri.ri2pandas()
).
Note: Since rpy2 release 3.3.0 explicit conversion is done as follows
import rpy2.robjects as ro
dt = pd.DataFrame()
# To R DataFrame
r_dt = ro.conversion.py2rpy(dt)
# To pandas DataFrame
pd_dt = ro.conversion.rpy2py(r_dt)
For more details check out this link.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…