如何解决如何更改 Pandas 数据框中的日期格式?
我有使用 2 个参数的数据框:
770
以下内容:
data_frame = pd.DataFrame(columns=l_header,data=conv)
如何更改日期列格式(它是一个字符串):
column_1 date
0 XYZ 04/11/2016 09:13:55 AM
1 QAZ 05/10/2019 11:31:05 PM
2 WSX 12/08/2019 08:00:00 AM
到:
%m/%d/%Y %I:%M:%s %p
解决方法
我认为这应该是最方便的方式?
>>> df
column_1 date
0 XYZ 04/11/2016 09:13:55 AM
1 QAZ 05/10/2019 11:31:05 PM
2 WSX 12/08/2019 08:00:00 AM
>>> df['date']=pd.to_datetime(df['date'],infer_datetime_format='%Y-%m-%d %H:%M:%S')
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
但最好在加载 .csv 文件期间执行此操作
>>> data_frame = pd.DataFrame(columns=l_header,parse_dates=['date'],infer_datetime_format='%Y-%m-%d %H:%M:%S')
,
您可以使用内置 strptime
模块中的 strftime
和 datetime
方法在 lambda
函数中使用,该函数将放入 {{ 3}} 方法:
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 在评论中指出的那样,无需导入 datetime
,因为 pandas
带有自己的 datetime
部分:
import pandas as pd
df = {"column_1": ["XYZ","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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。