Python 将时间戳字符串转换为日期时间格式
我有一列日期,格式为“Sun May 1 00:00:10 2016”,表示“Weekday,Mon,Day,hh:mm:ss,Year” 如何使用pandas.to_datetime或numpy格式化此文件 谢谢你的帮助Python 将时间戳字符串转换为日期时间格式,python,pandas,datetime,numpy,Python,Pandas,Datetime,Numpy,我有一列日期,格式为“Sun May 1 00:00:10 2016”,表示“Weekday,Mon,Day,hh:mm:ss,Year” 如何使用pandas.to_datetime或numpy格式化此文件 谢谢你的帮助 import pandas as pd date = 'Sun May 1 00:00:10 2016' df = pd.DataFrame([date], columns=['date']) 通常,对于此类任务,您应该使用datetime模块中的strtime方法:
import pandas as pd
date = 'Sun May 1 00:00:10 2016'
df = pd.DataFrame([date], columns=['date'])
通常,对于此类任务,您应该使用
datetime
模块中的strtime
方法:
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)
就熊猫而言:
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
df=pd.DataFrame([pd.to_datetime(date)],columns=['date'])您的计时结果完全是误导性的;试着用一个更大的数字