当我进行时
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