Pandas - 将日期列从 dd/mm/yy hh:mm:ss 转换为 yyyy-mm-dd hh:mm:ss

Kev*_*ash 11 datetime date pandas

我有一个数据框(df),它有一个日期列(列名:sale_date),它以以下格式存储数据

dd/mm/yy hh:mm:ss
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为 yyyy-mm-dd hh:mm:ss。尝试了以下但它仍然没有将其转换为所需的格式。

df['sale_date'] = pd.to_datetime(df['sale_date'])
Run Code Online (Sandbox Code Playgroud)

任何人都可以协助转换此日期列的格式。谢谢

aso*_*uin 17

如果您知道您的列中将具有一致的格式,则可以将其传递给to_datetime

df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

如果您的格式不一定一致,但在每种情况下都有前一天,那么使用它可能就足够了,dayfirst=True尽管在没有看到数据的情况下很难说:

df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst=True)
Run Code Online (Sandbox Code Playgroud)


Joe*_*Joe 15

你可以这样做:

df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y %H:%M:%S').dt.strftime('%Y-%m-%d %H:%M:%S')
Run Code Online (Sandbox Code Playgroud)

输入:

           sale_date
0  04/12/10 21:12:35
1  04/12/10 21:12:30
Run Code Online (Sandbox Code Playgroud)

输出:

             sale_date
0  2010-12-04 21:12:35
1  2010-12-04 21:12:30
Run Code Online (Sandbox Code Playgroud)