将字符串日期时间转换为 pandas 日期时间 [英] Convert string date time to pandas datetime
本文介绍了将字符串日期时间转换为 pandas 日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是Pandas和Python的新手.我想在脚本中执行一些日期时间操作. 我正在从csv文件获取以下格式的日期时间信息: 2017年4月1日6:59
I am new to Pandas and Python. I want to do some date time operations in my script. I am getting date time information from a csv file in following format: 01APR2017 6:59
如何将其转换为pandas datetime格式?就像是: 2017-04-01 06:59:00
How to convert it into pandas datetime format? Something like: 2017-04-01 06:59:00
推荐答案
您可以使用另一种可能的解决方案是在 read_csv
中使用date_parser
:
Another possible solution is use date_parser
in read_csv
:
import pandas as pd
from pandas.compat import StringIO
temp=u"""date
01APR2017 6:59
01APR2017 6:59"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
parser = lambda x: pd.datetime.strptime(x, '%d%b%Y %H:%M')
df = pd.read_csv(StringIO(temp), parse_dates=[0], date_parser=parser)
print (df)
date
0 2017-04-01 06:59:00
1 2017-04-01 06:59:00
print (df.date.dtype)
datetime64[ns]
通过评论
如果无法将值解析为datetime
,请添加参数errors='coerce'
以转换为NaT
:
If values cannot be parsed to datetime
, add parameter errors='coerce'
for convert to NaT
:
s = pd.Series(['01APR2017 6:59','01APR2017 6:59', 'a'])
print (s)
0 01APR2017 6:59
1 01APR2017 6:59
2 a
dtype: object
print (pd.to_datetime(s, format='%d%b%Y %H:%M', errors='coerce'))
0 2017-04-01 06:59:00
1 2017-04-01 06:59:00
2 NaT
dtype: datetime64[ns]
这篇关于将字符串日期时间转换为 pandas 日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文