将字符串日期时间转换为 pandas 日期时间 [英] Convert string date time to pandas datetime

查看:79
本文介绍了将字符串日期时间转换为 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆