gpt4 book ai didi

python - 如何在没有 pandas 中的 to_datetime 函数的情况下格式化列中的日期时间值?

转载 作者:太空宇宙 更新时间:2023-11-03 15:31:50 25 4
gpt4 key购买 nike

我有一个如下所示的数据框

df1_new = pd.DataFrame({'person_id': [1, 1, 3, 3, 5, 5],'obs_date': ['7/23/2377  12:00:00 AM', 'NA-NA-NA NA:NA:NA', 'NA-NA-NA NA:NA:NA', '7/27/2277  12:00:00 AM', '7/13/2077  12:00:00 AM', 'NA-NA-NA NA:NA:NA']})

enter image description here

我不想使用 pd.to_datetime 方法,因为它施加了年份限制(上限)。 OOB error here

下面是我尝试过的,但效果不佳,如下所示

yr = df1_new['obs_date'][0][5:9]
m = df1_new['obs_date'][0][2:4]
d = df1_new['obs_date'][0][0]
t = df1_new['obs_date'][0][11:19]
output = yr + "-" + m + "-" + d + " " + t

是否有任何其他有效且优雅的方法可以在不使用 pd.datetime 函数的情况下实现以下预期输出

enter image description here

更新截图

enter image description here

尝试/排除截图

enter image description here

最佳答案

将字符串转换为日期时间时应用try catch

import datetime
import pandas as pd

def str2time(x):
try:
return datetime.datetime.strptime(x, '%m/%d/%Y %I:%M:%S %p')
except:
return pd.NaT

df1_new['obs_date'] = df1_new['obs_date'].apply(str2time)
print(df1_new)
     person_id             obs_date
0 1 2377-07-23 12:00:00
1 1 NaT
2 3 NaT
3 3 2277-07-27 12:00:00
4 5 2077-07-13 12:00:00
5 5 NaT

关于python - 如何在没有 pandas 中的 to_datetime 函数的情况下格式化列中的日期时间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57551081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com