将时间戳字符串转换为日期时间格式

时间:2017-03-25 03:37:20

标签: python pandas datetime numpy

我在“Sun May 1 00:00:10 2016”这个不受欢迎的字符串格式中有一列日期,代表'Weekday,Mon,Day,hh:mm:ss,Year'。

如何使用pandas.to_datetime或numpy格式化它?

感谢帮助!

<!DOCTYPE html>
<html>
    <body>
        <div id="default"></div>
        <script src="index.js"></script>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

通常,对于此类任务,您应该使用strptime模块中的datetime方法:

from datetime import datetime as dt
s = 'Sun May 1 00:00:10 2016'
f = '%a %B %d %H:%M:%S %Y'
dt.strptime(s, f)
datetime.datetime(2016, 5, 1, 0, 0, 10)

pandas而言:

df = pd.DataFrame({"date":
                  ['Sun May 1 00:00:10 2016','Sun May 2 00:00:10 2016']})
df
date
0   Sun May 1 00:00:10 2016
1   Sun May 2 00:00:10 2016


df.date.apply(lambda s: dt.strptime(s,f))
0   2016-05-01 00:00:10
1   2016-05-02 00:00:10
Name: date, dtype: datetime64[ns]

修改

为了使其更加完整,user1753919在评论您的问题时建议的方式在这种情况下也“正常”:

pd.to_datetime(df.date)
0   2016-05-01 00:00:10
1   2016-05-02 00:00:10
Name: date, dtype: datetime64[ns]

然而,时间的结果可能是有意义的:

%timeit df.date.apply(lambda s: dt.strptime(s,f))
%timeit pd.to_datetime(df.date)
1000 loops, best of 3: 369 µs per loop
1000 loops, best of 3: 771 µs per loop