Cleaning up date data

Viewed 36

I have a dataset where the value for date is either looking like "updated 11 April 2022" or "11-Apr-22". anyway to unify the dates and make them all the exact same format?

I know I can remove the "update" with regex but how do I turn "11 April 2022" to "11-Apr-22" or vice versa?

1 Answers

IIUC, you can use pandas.to_datetime combined with str.replace:

df['col'] = (pd.to_datetime(df['col'].replace(r'updated\s*', '', regex=True))
               .dt.strftime('%d-%b-%y')
             )

For 11 April 2022 use %d %B %Y as strftime format output:

0    11-Apr-22
1    11-Apr-22
Name: col, dtype: object

Input data:

df = pd.DataFrame({'col': ["updated 11 April 2022", "11-Apr-22"]})
Related