rpy2 在 python 中加载 R-dataframe 产生错误的时间戳
rpy2 loading R-dataframe in python produces wrong timestamps
我正在尝试使用 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 数据帧中产生相同的错误时间戳。
做的时候
robjects.r['load']("~/example.Rdata")
在文件 example.Rdata
中序列化的 R 对象最终被加载并绑定到 R 的 "global environment" 中的符号。这大概不会导致 Python Dataframe array(['times', 'all_data'], dtype='<U8')
.
Python代码
robjects.r['times']
也可以写成
robjects.globalenv['times']
它所做的是在 R 的全局环境中检索 R 符号 times
并通过 rpy2 转换传递它。
如果没有独立的可重现示例,很难确定到底发生了什么,但如果这似乎是 rpy2 的问题,请在问题跟踪器上打开一个。
编辑: 此处打开问题 - https://github.com/rpy2/rpy2/issues/634
我正在尝试使用 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 数据帧中产生相同的错误时间戳。
做的时候
robjects.r['load']("~/example.Rdata")
在文件 example.Rdata
中序列化的 R 对象最终被加载并绑定到 R 的 "global environment" 中的符号。这大概不会导致 Python Dataframe array(['times', 'all_data'], dtype='<U8')
.
Python代码
robjects.r['times']
也可以写成
robjects.globalenv['times']
它所做的是在 R 的全局环境中检索 R 符号 times
并通过 rpy2 转换传递它。
如果没有独立的可重现示例,很难确定到底发生了什么,但如果这似乎是 rpy2 的问题,请在问题跟踪器上打开一个。
编辑: 此处打开问题 - https://github.com/rpy2/rpy2/issues/634