我有一个带有日期列的pandas数据帧,数据类型是datetime64 [ns]。数据框中有超过1000个观测值。我想转换以下专栏:
date
2013-05-01
2013-05-01
到
date
05/2013
05/2013
或
date
05-2013
05-2013
EDIT //
这是我现在的示例代码
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]
为什么只更改日期而不是格式?
答案 0 :(得分:2)
您可以使用datetime64
方法将strftime
转换为您喜欢的任何字符串格式。在你的情况下,你会这样应用它:
df.date = df.date[df.date.notnull()].map(lambda x: x.strftime('%m/%Y'))
df.date
Out[111]:
0 05/2013
1 05/2013