Python Pandas : extract date and time from timestamp

标签 python pandas date timestamp

我有一个时间戳列(时间),其中时间戳采用以下格式

0       02.28.2020 10:21:26.0734 vorm.
1       02.28.2020 10:21:27.0720 vorm.
2       02.28.2020 10:21:30.0705 vorm.
3       02.28.2020 10:21:31.0742 vorm.
4       02.28.2020 10:21:32.0606 vorm.

3978    02.28.2020 11:30:11.1122 vorm.
3979    02.28.2020 11:30:12.1078 vorm.
3980    02.28.2020 11:30:13.1100 vorm.
3981    02.28.2020 11:30:14.1190 vorm.
3982    02.28.2020 11:30:15.1086 vorm.
Name: Time, Length: 3983, dtype: object

我尝试通过以下方式转换 Timestamp 对象中的字符串对象:

df['Time'] = [datetime.datetime.strptime(d, "%d.%m.%Y %H:%M:%S.%f %p.") for d in df["Time"]]

但我收到以下错误:

ValueError: time data '02.28.2020 10:21:26.0734 vorm.' does not match format '%d.%m.%Y %H:%M:%S.%f %p.'

我假设错误来自“vorm.”,它是“AM”的指示。

最佳答案

使用to_datetime将 12H 格式的比赛时间格式从 %H 更改为 %I,还交换了 %d%m > 月份和天数,为了正确解析 AMPM 需要替换字典中的值:

df['Time'] = pd.to_datetime(df["Time"].replace({'vorm.' :'AM'}, regex=True), 
                            format="%m.%d.%Y %I:%M:%S.%f %p")
print (df)
                           Time
0    2020-02-28 10:21:26.073400
1    2020-02-28 10:21:27.072000
2    2020-02-28 10:21:30.070500
3    2020-02-28 10:21:31.074200
4    2020-02-28 10:21:32.060600
3978 2020-02-28 11:30:11.112200
3979 2020-02-28 11:30:12.107800
3980 2020-02-28 11:30:13.110000
3981 2020-02-28 11:30:14.119000
3982 2020-02-28 11:30:15.108600

关于Python Pandas : extract date and time from timestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60703750/

相关文章:

python - ipython 警告消息 - Linux

python - 更新 Pandas 数据帧子集的子集的值对于大型数据集来说太慢了

python - 按 Pandas 级别分组

python - 将列表中的缺失值子集到 Python 3.x 中的新数据框中

javascript - 需要帮助在日语中格式化 MomentJS 中的日期

python - 使用 python 更新库存 csv 文件

python - 如何制作加密任何类型文件的python脚本

Python popen 命令。等待命令完成

C# If 语句,其中日期是本月

mysql - 如何在 MySQL 中对日期字段进行分组以获取季度结果?