如何從數據框架中指定日期時間的年份、月份、日期?

2024-03-29 08:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据帧:

7542  08/01/2015 00:09:19
7543  08/01/2015 01:01:07
7544  08/01/2015 01:05:42
7545  08/01/2015 01:53:52
7546  08/01/2015 02:28:56

我想将其转换为datetime格式,但是当我使用pd.to_datetime时,我得到了以下错误:

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing

我试过pd.to_datetime(dataf.stack()).unstack(),得到了NaT。在


Tags: to数据datetime格式错误yearatmappings
3条回答

错误意味着您的代码选择DataFrame,因此pd.to_datetime正在寻找{a1}:

print (pd.to_datetime(dataf))

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing


解决方案是使用参数dayfirst=True选择列date,如果第一个数字是^{}中的天:

^{pr2}$

设置

^{3}$

玩了一会儿之后,我想出了一个简单的方法:

sample_df = pd.DataFrame({'datetime':['08/01/2015 00:09:19', '08/01/2015 01:01:07', '08/01/2015 01:05:42']})
pd.to_datetime(sample_df.datetime, infer_datetime_format=True)

是啊,就是这么简单。我认为to_datetime需要数据采用某种格式,传递dataframe的特定列有助于它获得该格式。在

除了infer_datetime_format=True,还可以显式传递格式:

>>> pd.to_datetime(sample_df['datetime'], format='%m/%d/%Y %H:%M:%S') 
0   2015-08-01 00:09:19
1   2015-08-01 01:01:07
2   2015-08-01 01:05:42
Name: datetime, dtype: datetime64[ns]

不久前我问了一个关于这个问题的问题,@AlexRiley:Inferring date format versus passing a parser给出了一个很好的答案。在

相关问题 更多 >