处理熊猫和Rpy2中带有时区的时间戳

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

我正在尝试了解如何将包含时间戳记的行添加到具有数据类型为datetime64 [ns,UTC]的列的Pandas数据帧。不幸的是,当我添加一行时,列数据类型更改为对象,最终导致通过Rpy2中断到R数据帧的转换。

这是我看到问题的有趣代码行,它周围的调试打印语句也将与我共享其输出。变量观察值是一个简单的python列表,其第一个值为时间戳。代码:

print('A: df.dtypes[0] = {}'.format(str(df.dtypes[0])))
print('observation[0].type = {}, observation[0].tzname() = {}'.format(str(type(observation[0])), observation[0].tzname()))
df.loc[len(df)] = observation
print('B: df.dtypes[0] = {}'.format(str(df.dtypes[0])))

以下是上述代码段的输出:

A: df.dtypes[0] = datetime64[ns, UTC]
observation[0].type = <class 'datetime.datetime'>, observation[0].tzname() = UTC
B: df.dtypes[0] = object

我正在观察的是,当我追加行时,该列的数据类型正在更改。据我所知,Pandas正在将时间戳添加为。 rpy2 pandas2ri模块似乎无法转换该类的值。

到目前为止,我一直找不到能够让我向数据框追加一行并保留timestamp列的列类型的方法。欢迎提出建议。

python pandas rpy2
1个回答
0
投票

如果我理解正确,您想将observation[0]datatime对象转换为字符串。为此,您可以使用:

from datetime import datetime
datetime.fromtimestamp(observation[0])
© www.soinside.com 2019 - 2024. All rights reserved.