我有一个带有日期列的pandas数据框架,数据类型为datetime64[ns]。数据框中有超过1000个观察值。我想转换以下列:
date
2013-05-01
2013-05-01
date
05/2013
05/2013
或
date
05-2013
05-2013
编辑//这是我现在的示例代码
test = pd.DataFrame({'a':['07/2017','07/2017',pd.NaT]})
a
0 2017-07-13
1 2017-07-13
2 NaT
test['a'].apply(lambda x: x if pd.isnull(x) == True else x.strftime('%Y-%m'))
0 2017-07-01
1 2017-07-01
2 NaT
Name: a, dtype: datetime64[ns]
为什么只改变了日期而没有改变格式?
您可以使用strftime
方法将datetime64
转换为您喜欢的任何字符串格式。在您的情况下,您可以这样应用它:
df.date = df.date[df.date.notnull()].map(lambda x: x.strftime('%m/%Y'))
df.date
Out[111]:
0 05/2013
1 05/2013