使用Rpy2将Pandas DataFrame转换为R数据帧

KidSudi

我有一个熊猫数据框,可以使用pandas.rpy.common的convert_to_r_dataframe方法转换为R数据框。我有这样设置:

self.event = pd.read_csv('C://' + self.event_var.get() + '.csv')
final_products = pd.DataFrame({'Product': self.event.Product, 'Size': self.event.Size, 'Order': self.event.Order})
r.assign('final_products', com.convert_to_r_dataframe(final_products))
r.assign('EventName', self.event_var.get())
r.assign('EventTime', self.eventtime_var.get())
r.source('application.r')

其中self.event_var.get()在GUI中检索用户输入(我正在使用Tkinter创建应用程序)。产品,尺寸和订单是CSV文件中的列。

由于Rpy2在Python中设置了R环境,因此我希望R环境可以理解final_products R数据帧。不幸的是,尽管R脚本确实在运行,但是它并不能给出正确的结果(我使用R脚本创建了图形,但是在程序终止时它们只是空的)。但是,EventName和EventTime变量确实起作用。我在这里缺少什么吗?为什么R环境无法正确解释为什么在Python中分配R数据帧的任何想法?

获得的错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
    return self.func(*args)
File "G:\Development\workspace\GUI\GUI.py", line 126, in evaluate
    r.source('application.r')
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 86, in __call__
    return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "C:\Python27\lib\site-packages\rpy2\robjects\functions.py", line 35, in __call__
    res = super(Function, self).__call__(*new_args, **new_kwargs)
米特切普斯

不幸的是,这将变得很困难,因为Python-> R转换比以前要好,但并不完美,并且在当前Windows上仍然很困难,看起来您正在使用。

这有点麻烦,但是作为变通办法,您可以在分配pd.DataFrame时尝试将名称和时间变量设置为,然后再将DataFrame转换为R。

一旦进入R,您将需要使用R函数在数据帧上进行操作,而不是python函数-即使您的getter和setter也需要以更像这样的方式传递到R环境中:

myfunct = robjects.r('''
        f <- function(r, verbose=FALSE) {
            if (verbose) {
                cat("I am calling f().\n")
            }
            2 * pi * r
        }
        f(3)
        ''')

这里

但是只是为了首先检查您的DataFrame是否已正确转换,您可以通过运行以下命令开始调试:

import pandas as pd
import numpy as np
import pandas.rpy.common as com
from datetime import datetime

n = 10
df = pd.DataFrame({
    "timestamp": [datetime.now() for t in range(n)],
    "value": np.random.uniform(-1, 1, n)
    })

r_dataframe = com.convert_to_r_dataframe(df)
print(r_dataframe)

那产生的东西看起来像数据帧的R打印语句吗?

>>>             timestamp        value
0 2014-06-03 15:02:20 -0.36672....
1 2014-06-03 15:02:20 -0.89136....
2 2014-06-03 15:02:20 0.509215....
3 2014-06-03 15:02:20 0.862909....
4 2014-06-03 15:02:20 0.389879....
5 2014-06-03 15:02:20 -0.80607....
6 2014-06-03 15:02:20 -0.97116....
7 2014-06-03 15:02:20 0.376419....
8 2014-06-03 15:02:20 0.848243....
9 2014-06-03 15:02:20 0.446798....

例子从这里这里剥落

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Rpy2将Pandas DataFrame转换为R数据帧

来自分类Dev

使用 rpy2 将 Python 二进制数据转换为 R

来自分类Dev

使用rpy2将Python变量传递给R

来自分类Dev

Rpy2 pandas2ri.ri2py()将NA值转换为整数

来自分类Dev

Rpy2和Pandas:将预测数据输出到Pandas数据框

来自分类Dev

将RPy2 ListVector转换为Python字典

来自分类Dev

R将数据帧转换为JSON

来自分类Dev

Rpy2:Pandas数据框不适合R

来自分类Dev

使用rpy2从pandas DataFrame的分位数回归模型中的不合格数组

来自分类Dev

如何将rpy2 ListVector(rpy2.robjects.vectors.ListVector)转换为python?

来自分类Dev

使用rpy2将.R文件采购到python时出现问题

来自分类Dev

如何在Python代码中使用rpy2将R函数作为参数传递

来自分类Dev

将列添加到rpy2中的DataFrame

来自分类Dev

将列添加到rpy2中的DataFrame

来自分类Dev

通过rpy2将列表从python传递到R

来自分类Dev

将逻辑回归从R迁移到rpy2

来自分类Dev

通过rpy2将列表从python传递到R

来自分类Dev

rpy2不会将“ _”转换为“”。

来自分类Dev

使用rpy2从python调用R脚本

来自分类Dev

如何使用rpy2访问R包的内部功能?

来自分类Dev

使用rpy2运行R函数时出错

来自分类Dev

使用rpy2从python动态调用R库

来自分类Dev

使用 rpy2 从 Python 调用 R 函数

来自分类Dev

R将1D数据帧转换为2D数据帧

来自分类Dev

将数据帧转换为R中的扩展矩阵

来自分类Dev

将“ dist”类的对象转换为r中的数据帧

来自分类Dev

如何将colSums转换为R到数据帧

来自分类Dev

将向量列表转换为R中的数据帧

来自分类Dev

R将CSV文件转换为数据帧