Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas
- import numpy
- import scipy
- import rpy2
- from rpy2.robjects import r
- from collections import OrderedDict
- py2ri_orig = rpy2.robjects.conversion.py2ri
- def conversion_pydataframe(obj):
- print "CONVERTING TO PYDATAFRAME"
- if isinstance(obj, pandas.core.frame.DataFrame):
- od = OrderedDict()
- for name, values in obj.iteritems():
- if values.dtype.kind == 'O':
- od[name] = rpy2.robjects.vectors.StrVector(values)
- else:
- od[name] = rpy2.robjects.conversion.py2ri(values)
- return rpy2.robjects.vectors.DataFrame(od)
- else:
- return py2ri_orig(obj)
- rpy2.robjects.conversion.py2ri = conversion_pydataframe
- df = pandas.DataFrame({"a": 1, "b": 2},
- {"c": 3, "d": 4})
- print type(df)
- r.plot(df)
- Yields the error:
- <class 'pandas.core.frame.DataFrame'>
- CONVERTING TO PYDATAFRAME
- CONVERTING TO PYDATAFRAME
- Traceback (most recent call last):
- rpy2/robjects/__init__.py", line 144, in default_py2ri
- raise(ValueError("Nothing can be done for the type %s at the moment." %(type(o))))
- ValueError: Nothing can be done for the type <class 'pandas.core.series.Series'> at the moment.
Add Comment
Please, Sign In to add comment