gpt4 book ai didi

Python - 检测值/字符串列表是否是日期、时间、日期时间或两者都不是

转载 作者:行者123 更新时间:2023-12-01 01:29:24 24 4
gpt4 key购买 nike

给定一个值或字符串列表,我如何检测它们是否是日期、日期和时间,或者两者都不是?

我使用 pandas api 来推断数据类型,但它不能很好地处理日期。请参阅示例:

import pandas as pd

def get_redshift_dtype(values):
dtype = pd.api.types.infer_dtype(values)
return dtype

这就是我正在寻找的结果。有更好的方法建议吗?

# Should return "date"
values_1 = ['2018-10-01', '2018-02-14', '2017-08-01']

# Should return "date"
values_2 = ['2018-10-01 00:00:00', '2018-02-14 00:00:00', '2017-08-01 00:00:00']

# Should return "datetime"
values_3 = ['2018-10-01 02:13:00', '2018-02-14 11:45:00', '2017-08-01 00:00:00']

# Should return "None"
values_4 = ['123098', '213408', '801231']

最佳答案

您可以编写一个函数来根据您指定的条件返回值:

def return_date_type(s):
s_dt = pd.to_datetime(s, errors='coerce')
if s_dt.isnull().any():
return 'None'
elif s_dt.normalize().equals(s_dt):
return 'date'
return 'datetime'

return_date_type(values_1) # 'date'
return_date_type(values_2) # 'date'
return_date_type(values_3) # 'datetime'
return_date_type(values_4) # 'None'

您应该知道 Pandas datetime 系列总是包含时间。在内部,它们存储为整数,如果未指定时间,它将设置为 00:00:00

关于Python - 检测值/字符串列表是否是日期、时间、日期时间或两者都不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53034616/

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