将字符串转换为datetime Python

将字符串转换为datetime Python,python,datetime,Python,Datetime,如果我从csv文件中读取字符串2014-05-19,如何将其转换为Python中的datetime对象?当前,当我指定dtype=None时,它将作为字符串而不是日期时间读入2014-05-19 import numpy as np import datetime np.genfromtxt(inputFile, dtype=None,delimiter=' ') 文件 2014-05-19 10 2014-05-20 11 2014-05-21 12 2014-05-22 13.29 20

如果我从
csv
文件中读取字符串
2014-05-19
,如何将其转换为
Python
中的datetime对象?当前,当我指定dtype=None时,它将作为字符串而不是日期时间读入
2014-05-19

import numpy as np
import datetime

np.genfromtxt(inputFile, dtype=None,delimiter=' ')
文件

2014-05-19 10
2014-05-20 11
2014-05-21 12
2014-05-22 13.29
2014-05-23 12.1
其中,字符串后面的数字是与日期关联的值,但不包括在
datetime
对象中

dataPoints = np.loadtxt(inputFile, dtype=None,delimiter=' ', converters = {0: datetime.datetime.strptime('%Y-%m-%d')})
我收到以下消息:
TypeError:strtime()正好接受2个参数(给定1个)


如何在不实际剥离字符串的情况下指定格式?

您应该使用datetime模块中的strTime函数。我不确定空格后的数字应该是什么,但这会将年-月-日正确格式化为datetime对象

from datetime import datetime

some_date = '2014-05-28'
parsed_date = datetime.strptime(some_date, '%Y-%m-%d')

print(parsed_date)

您应该使用datetime模块中的strTime函数。我不确定空格后的数字应该是什么,但这会将年-月-日正确格式化为datetime对象

from datetime import datetime

some_date = '2014-05-28'
parsed_date = datetime.strptime(some_date, '%Y-%m-%d')

print(parsed_date)

如果没有缺少的值,可以使用
numpy.loadtxt()

numpy.genfromtxt()
还有converters参数。(thx RickyA)

使用“coverters”参数和lambda函数:

from datetime import datetime
datestr2num = lambda x: datetime.strptime(x, '%Y-%m-%d')
np.genfromtxt(inputFile, delimiter=' ', converters = {0: datestr2num})
其中
0
是列索引

有一种更简单的方法-使用数据类型参数:

np.genfromtxt(inputFile,dtype=['datetime64[D],float],分隔符='')

使用('column name',type)元组可使人更容易阅读:

np.genfromtxt(输入文件,数据类型=[('Date','datetime64[D]),('Value',float)],分隔符=“”)


顺便说一句,在numpy中以datetime形式加载字符串更准确。

如果没有缺少的值,可以使用
numpy.loadtxt()

numpy.genfromtxt()
还有converters参数。(thx RickyA)

使用“coverters”参数和lambda函数:

from datetime import datetime
datestr2num = lambda x: datetime.strptime(x, '%Y-%m-%d')
np.genfromtxt(inputFile, delimiter=' ', converters = {0: datestr2num})
其中
0
是列索引

有一种更简单的方法-使用数据类型参数:

np.genfromtxt(inputFile,dtype=['datetime64[D],float],分隔符='')

使用('column name',type)元组可使人更容易阅读:

np.genfromtxt(输入文件,数据类型=[('Date','datetime64[D]),('Value',float)],分隔符=“”)


顺便说一句,在numpy中如何将字符串作为日期时间加载会更准确。

空格后的数字是多少?为什么必须使用numpy?为什么不打开csv、逗号分隔和strTime?空格后的数字是多少?为什么必须使用numpy?为什么不打开csv、逗号分隔和strTime?但这会尝试将我的关联值转换为日期吗?我刚刚编辑过。您可以指示将按索引转换的列。所以答案是否定的:-)顺便说一句,还有转换器param@PiotrNawrot另外,datestr2num='%Y-%m-%d'是否足够?@PiotrNawrot我仍然对datestr2num部分感到有点困惑,谢谢。但这是否也会尝试将我的关联值转换为日期?我刚刚编辑过。您可以指示将按索引转换的列。所以答案是否定的:-)顺便说一句,还有转换器param@PiotrNawrot另外,datestr2num='%Y-%m-%d'是否足够?@PiotrNawrot我仍然对datestr2num部分有点困惑,谢谢。