转换为日期时间格式

convert to date time format

我有列 Month Year(dtype = object),我想转换为 Datetime 格式。

我在这段代码下面试过,但它不起作用.....

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

尝试使用 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

如果你想保持年月格式,你需要把它转换成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]

注意:apply 中的 strftime 会将其转换为 string/object dtype,所以我不知道你是否打算使用它。