Вы должны вызвать apply
и передать данные strftime
:
In [111]:
all_data = pd.DataFrame({'Order Day new':[dt.datetime(2014,5,9), dt.datetime(2012,6,19)]})
print(all_data)
all_data.info()
Order Day new
0 2014-05-09
1 2012-06-19
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1
Data columns (total 1 columns):
Order Day new 2 non-null datetime64[ns]
dtypes: datetime64[ns](1)
memory usage: 32.0 bytes
In [108]:
all_data['Order Day new'] = all_data['Order Day new'].apply(lambda x: dt.datetime.strftime(x, '%Y-%m-%d'))
all_data
Out[108]:
Order Day new
0 2014-05-09
1 2012-06-19
In [109]:
all_data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1
Data columns (total 1 columns):
Order Day new 2 non-null object
dtypes: object(1)
memory usage: 32.0+ bytes
Вы не можете назвать strftime
на колонке, как он не понимает Series
как парам, следовательно, ошибки
EDIT
Если вы используете версию 0.17.0
или выше, вы можете позвонить по этому телефону .dt.strftime
, который векторизован:
all_data['Order Day new'] = all_data['Order Day new'].dt.strftime('%Y-%m-%d')