您可以使用内置datetime 模块中的strptime 和strftime 方法在lambda 函数中使用,该函数将放入apply 方法的括号中:
from datetime import datetime
import pandas as pd
df = {"column_1": ["XYZ", "QAZ", "WSX"],
"date": ["04/11/2016 09:13:55 AM", "05/10/2019 11:31:05 PM", "12/08/2019 08:00:00 AM"]}
df = pd.DataFrame(df)
format1 ="%m/%d/%Y %I:%M:%S %p"
format2 = "%Y-%m-%d %H:%M:%S"
df["date"] = df["date"].apply(lambda x: datetime.strptime(x, format1).strftime(format2))
print(df)
输出:
column_1 date
0 XYZ 2016-04-11 09:13:55
1 QAZ 2019-05-10 23:31:05
2 WSX 2019-12-08 08:00:00
更新:
正如@YevKad 在 cmets 中指出的那样,不需要导入datetime,因为pandas 带有自己的datetime 部分:
import pandas as pd
df = {"column_1": ["XYZ", "QAZ", "WSX"],
"date": ["04/11/2016 09:13:55 AM", "05/10/2019 11:31:05 PM", "12/08/2019 08:00:00 AM"]}
df = pd.DataFrame(df)
format1 ="%m/%d/%Y %I:%M:%S %p"
format2 = "%Y-%m-%d %H:%M:%S"
df['date'] = pd.to_datetime(df['date'], format=format1).dt.strftime(format2)
print(df)