How to convert R dataframe back to Pandas using rpy2?

Viewed 20372

I converted a pandas dataframe to R using the code below:

import pandas as pd
import pandas.rpy.common as com
import rpy2.robjects as ro
from rpy2.robjects.packages import importr

rdf = com.convert_to_r_dataframe(df)

How do I convert rdf back to a pandas.DataFrame?

df = f(rdf)
4 Answers

Use pandas to read an rpy2 dataframe, r_df. It will avoid the deprecation warning "FutureWarning: from_items is deprecated. Use DataFrame.from_dict(dict(items), ...) instead"

type(r_df) is "rpy2.robjects.vectors.DataFrame".
type(pd_df) is "pandas.core.frame.DataFrame"

pd_df = pd.DataFrame.from_dict({ key : np.asarray(r_df.rx2(key)) for key in r_df.names })

Related