python - 使用 Rpy2 将 Pandas DataFrame 转换为 R dataframe

标签 python r dataframe rpy2

我有一个 pandas 数据帧,我使用 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 创建应用程序)。 Product、Size 和 Order 是 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)

最佳答案

很好的答案 @Mittenchops。由于 convert_to_r_dataframe 已弃用。用 rpy2 接口(interface)更新上面的例子

from rpy2.robjects import pandas2ri
pandas2ri.activate()

import pandas as pd
import numpy as np
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 = pandas2ri.py2ri(df)
print(r_dataframe)

关于python - 使用 Rpy2 将 Pandas DataFrame 转换为 R dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325353/

相关文章:

Python 的 fuzzywuzzy 返回不可预测的结果

r - 引用类字段列表中的多个可接受的类

python - 如何使用设置差异比较 pandas DataFrame

python - 如何在pandas dataframe Python中找到GPS坐标之间的角度

r - R中按月的时间序列聚合

python - Neo4j 慢?我一定做错了什么,请告诉我它是什么

python - Celery pickle type content disallowed 错误

python - 弹性查询,其中字段在弹性中为空

r - 保存在 Shiny 的应用程序中收集的 react 数据

从 R 中的 data.frame 中删除引号 ("")