使用 pandas to_datetime 时如何定义格式?

2024-05-07

我想根据以下内容绘制结果与时间的关系图testresult.csv文件具有以下格式,并且我无法正确定义 TIME 列的数据类型。

TIME,RESULT  
03/24/2016 12:27:11 AM,2  
03/24/2016 12:28:41 AM,76  
03/24/2016 12:37:23 AM,19  
03/24/2016 12:38:44 AM,68  
03/24/2016 12:42:02 AM,44  
...

要读取 csv 文件,这是我编写的代码:raw_df = pd.read_csv('testresult.csv', index_col=None, parse_dates=['TIME'], infer_datetime_format=True)
这段代码可以工作,但是速度非常慢,我假设infer_datetime_format需要时间。所以我尝试首先默认读取 csv,然后使用将对象 dtype 'TIME' 转换为 datetime dtypeto_datetime(),我希望通过定义格式,可以加快速度。

raw_df =  pd.read_csv('testresult.csv')
raw_df.loc['NEWTIME'] = pd.to_datetime(raw_df['TIME'], format='%m/%d%Y %-I%M%S %p')

这段代码抱怨错误:

"ValueError: '-' is a bad directive in format '%m/%d%Y %-I%M%S %p'"


您传递的格式无效。之间的破折号%I不应该在那里。

df['TIME'] = pd.to_datetime(df['TIME'], format="%m/%d/%Y %I:%M:%S %p")

这将转换你的TIME列到日期时间。


或者,您可以调整您的read_csv调用来执行此操作:

pd.read_csv('testresult.csv', parse_dates=['TIME'], 
    date_parser=lambda x: pd.to_datetime(x, format='%m/%d/%Y %I:%M:%S %p'))

同样,这使用了适当的格式,没有额外的-,但它也会将格式传递给date_parser http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html参数而不是让 pandas 尝试用infer_datetime_format范围。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas to_datetime 时如何定义格式? 的相关文章

随机推荐