我有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
答案 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