[rpy2在python中加载R-dataframe产生错误的时间戳记

问题描述 投票:1回答:1

我正在尝试使用rpy2将R数据帧加载到python中。

import rpy2.robjects as robjects

robjects.r['load']("~/example.Rdata")

这将产生带有以下内容的python数据框:

array(['times', 'all_data'], dtype='<U8')

但是,时间值发生了偏移:

robjects.r['times']产生:

DatetimeIndex(['2014-12-31 17:00:00+00:00', '2014-12-31 17:30:00+00:00','2014-12-31 18:00:00+00:00', '2014-12-31 18:30:00+00:00', '2014-12-31 19:00:00+00:00', '2014-12-31 19:30:00+00:00', ...dtype='datetime64[ns, UTC]']

何时应该产生(直接从R下面):

   "2015-01-01 00:00:00 UTC" "2015-01-01 00:30:00 UTC" "2015-01-01 01:00:00 UTC"
   "2015-01-01 01:30:00 UTC" "2015-01-01 02:00:00 UTC" "2015-01-01 02:30:00 UTC"

在读取此数据帧时,如何保留原始的正确UTC时间?尝试x = pd.to_datetime(robjects.r['times'])也会在python数据帧中产生相同的错误时间戳。

python r pandas timestamp rpy2
1个回答
0
投票
执行时

robjects.r['load']("~/example.Rdata")

在文件example.Rdata中序列化的R对象最终被加载并绑定到R的“全局环境”中的符号。大概不会导致Python数据框array(['times', 'all_data'], dtype='<U8')

Python代码

robjects.r['times']

也可以写成

robjects.globalenv['times']

及其作用是在R的全局环境中检索R符号times,并将其传递给rpy2转换。

[没有独立的可复制示例很难确定到底发生了什么,但是如果rpy2似乎是一个问题,请在问题跟踪器上打开一个。

edit:问题在这里打开-https://github.com/rpy2/rpy2/issues/634

© www.soinside.com 2019 - 2024. All rights reserved.