我在“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>
答案 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