For some reason I cannot convert columns of different dataframes:
cols_to_change = [df1['date1'], df2['date2'], df3['date3']]
for i in cols_to_change:
i = pd.to_datetime(i, format = '%Y-%m-%d')
although str can be converted to datetime.
But it works ok if I write
df1['date1'] = pd.to_datetime(df1['date1'], format = '%Y-%m-%d') df2['date2'] = pd.to_datetime(df2['date2'], format = '%Y-%m-%d')
And if I call
pd.to_datetime(df1['date1'].loc[0], format = '%Y-%m-%d')
it returns a Timestamp. Is this the point?
Advertisement
Answer
pd.to_datetime returns a new Series and you assigned that series to i, which you never used after the conversion.
You need to refer to the original dataframe and column:
cols_to_change = [
(df1, 'date1'),
(df2, 'date2'),
(df3, 'date3')
]
for df, col in cols_to_change:
df[col] = pd.to_datetime(df[col], format='%Y-%m-%d')