无法使用Pandas将timestamp转换为datetime

yqlxgs2m  于 2023-05-12  发布在  其他
关注(0)|答案(2)|浏览(157)

我正在努力使用Pandas中的datetime函数,我最终试图用DataFrame中的行条目绘制时间戳。
我正在使用以下时间戳格式:[23/Sep/2013:13:02:47+0200]
有人能帮我将时间戳格式转换为日期时间对象所需的代码吗?这样我就可以根据行条目绘制时间戳图,目的是让上面看到的攻击与发生时间相关。
我现在使用以下代码获取ParserError

av3["Timestamp"] = pd.to_datetime(av3["Timestamp"])

错误:

ParserError: Unknown string format: [23/Sep/2013:13:02:47+0200] present at position 0
tyu7yeag

tyu7yeag1#

您需要解析字符串以获得datetime类型。阅读文档以了解格式字符串:strftime()和strptime()行为

from datetime import datetime

date_string = "23/Sep/2013:13:02:47+0200"
format_string = "%d/%b/%Y:%H:%M:%S%z"
dt = datetime.strptime(date_string, format_string)

print(dt)

输出:

2013-09-23 13:02:47+02:00
1hdlvixo

1hdlvixo2#

对于自定义日期时间格式,请使用pandas.to_datetime()函数中的 format 参数指定日期时间格式。有关更多详细信息,请参见API Docs

import pandas as pd

df = pd.DataFrame({
  "Timestamp": ["23/Sep/2013:13:02:47+0200"]
})

df["Timestamp"] = pd.to_datetime(df["Timestamp"], format='%d/%b/%Y:%H:%M:%S%z')

print(df["Timestamp"])

输出:

0   2013-09-23 13:02:47+02:00
Name: Timestamp, dtype: datetime64[ns, UTC+02:00]

相关问题