我正在使用一个数据帧,其中有一个date
列,格式不规则,即:
date
0 1991/1/1
1 1970/1/1
2 1991/01/01
3 1996-01-01
4 1996-06-30
5 1995-12-31
6 1997-01-01
7 1970/1/1
8 1996-01-01
9 1997-01-01
10 1996-01-01
如何将其转换为代表XXXX-XX-XX
的标准格式year-month-date
。
使用df.date.unique()
,我得到以下输出,实际上,我想查看所有唯一的日期值:
array(['2017-10-01', '2015-1-1', '2008-06-01', ...,
datetime.datetime(2005, 2, 1, 0, 0),
datetime.datetime(2004, 5, 1, 0, 0),
datetime.datetime(2016, 3, 20, 0, 0)], dtype=object)
使用df['date'] = pd.to_datetime(df['date'])
,我得到:
ValueError: month must be in 1..12
有人可以帮助我吗?谢谢。
答案 0 :(得分:1)
选中errors='coerce'
df['Date']=pd.to_datetime(df.date,errors='coerce')
对于那些返回nan
的行,由于是特殊情况,我们可能需要逐行检查。但是,这里的想法是
df['Date']=np.where(df['Date'].isnull(), pd.to_datetime(df.date,format='something here'),df['Date'])