转换为日期时间格式

时间:2019-09-03 04:22:52

标签: pandas datetime-format

我有Monthyear(dtype = object)列,我想转换为Date时间格式。

我在下面的代码下尝试过,但是没有用.....

AGENT       MONTHYEAR

45          SEP-2018
567         AUG-2017
432         APR-2018  
Reatiers_Sales_Monthlywises_above_13['MONTHYEARS'] = Reatiers_Sales_Monthlywises_above_13['MONTHYEAR'].apply(lambda x: x.strftime('%B-%Y'))
Reatiers_Sales_Monthlywises_above_13
```

Pls support to convert this object dtype to DateTime

2 个答案:

答案 0 :(得分:2)

如果要将其保留为年月格式,则需要将其转换为period dtype。

pd.to_datetime(df.MONTHYEAR).dt.to_period('M')

Out[206]:
0    2018-09
1    2017-08
2    2018-04
Name: MONTHYEAR, dtype: period[M]

如果您希望使用Datetime dtype类型,它将采用年-月-日期格式

pd.to_datetime(df.MONTHYEAR)

Out[207]:
0   2018-09-01
1   2017-08-01
2   2018-04-01
Name: MONTHYEAR, dtype: datetime64[ns]

注意:strftime中的apply会将其转换为字符串/对象dtype,所以我不知道您是否打算使用它。

答案 1 :(得分:0)

尝试使用dateutil解析器

它将字符串转换为日期

注意::由于当前日期是03,因此它将一天中添加了03

from dateutil import parser

df = pd.DataFrame(data={"AGENT":[45,567,432],
                   "MONTHYEAR":['SEP-2018','AUG-2017','APR-2018']})


df['MONTHYEAR'] = df['MONTHYEAR'].apply(lambda x :parser.parse(str(x)))

     AGENT  MONTHYEAR
0     45    2018-09-03
1    567    2017-08-03
2    432    2018-04-03