微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 将时间戳列拆分为单独的日期和时间列

我有一个超过1000个时间戳(下面)的pandas数据帧,我想循环遍历:

2016-02-22 14:59:44.561776

我很难将这个时间戳分成两列 – ‘日期’和’时间’.日期格式可以保持不变,但需要将时间转换为CST(包括毫秒).

谢谢您的帮助

解决方法:

我不确定你为什么要首先这样做,但如果你真的必须……

df = pd.DataFrame({'my_timestamp': pd.date_range('2016-1-1 15:00', periods=5)})

>>> df
         my_timestamp
0 2016-01-01 15:00:00
1 2016-01-02 15:00:00
2 2016-01-03 15:00:00
3 2016-01-04 15:00:00
4 2016-01-05 15:00:00

df['new_date'] = [d.date() for d in df['my_timestamp']]
df['new_time'] = [d.time() for d in df['my_timestamp']]

>>> df
         my_timestamp    new_date  new_time
0 2016-01-01 15:00:00  2016-01-01  15:00:00
1 2016-01-02 15:00:00  2016-01-02  15:00:00
2 2016-01-03 15:00:00  2016-01-03  15:00:00
3 2016-01-04 15:00:00  2016-01-04  15:00:00
4 2016-01-05 15:00:00  2016-01-05  15:00:00

转换为CST更加棘手.我假设当前的时间戳是’不知道’,即它们没有附加时区?如果没有,您希望如何转换它们?

更多细节:

https://docs.python.org/2/library/datetime.html

How to make an unaware datetime timezone aware in python

编辑

另一种方法,只在时间戳上循环一次而不是两次:

new_dates, new_times = zip(*[(d.date(), d.time()) for d in df['my_timestamp']])
df = df.assign(new_date=new_dates, new_time=new_times)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐