Pandas:0.18.0版本中的时间戳(带时区)



当我进行时

df[ts_col]

我看到这个输出

Series: 0   2015-02-04 23:21:15-06:00
Name: Timestamp, dtype: datetime64[ns, US/Central]

当我做时

df[ts_col].apply(lambda x: x)

我看到

Series: 0   2015-02-05 05:21:15
Name: Timestamp, dtype: datetime64[ns]

当我做时

df[ts_col].apply(lambda x: str(x))

我看到

Series: 0    2015-02-05 05:21:15
Name: Timestamp, dtype: object

这毫无意义。有人能解释吗?具体来说,我感兴趣的是如何从时间戳中提取日期2015-02-04

这是一个已知的panda问题,看起来几乎已经解决:

https://github.com/pydata/pandas/issues/11800

https://github.com/pydata/pandas/issues/11757

目前,您可能可以使用类似上一个示例的方法来解决它:

In [182]: df["d"]
Out[182]:
0   2016-03-31 20:00:00-04:00
1   2016-03-31 21:00:00-04:00
2   2016-03-31 22:00:00-04:00
3   2016-03-31 23:00:00-04:00
4   2016-04-01 00:00:00-04:00
5   2016-04-01 01:00:00-04:00
Name: d, dtype: datetime64[ns, US/Eastern]
In [183]: df["d"].apply(lambda x: str(x))
Out[183]:
0    2016-04-01 00:00:00
1    2016-04-01 01:00:00
2    2016-04-01 02:00:00
3    2016-04-01 03:00:00
4    2016-04-01 04:00:00
5    2016-04-01 05:00:00
Name: d, dtype: object
In [184]: df["d"].astype(pd.datetime).apply(lambda x: x.date())
Out[184]:
0    2016-03-31
1    2016-03-31
2    2016-03-31
3    2016-03-31
4    2016-04-01
5    2016-04-01
Name: d, dtype: object

相关内容

  • 没有找到相关文章

最新更新