我正在使用一个函数使列中的日期保持一致,它是这样的
from dateutil.parser import parse
def dateconv1(x):
c = parse(x)
return c
所以如果我用它作为,它工作得很好
In[15]:dateconv1("1 / 22 / 2016 15:03")
Out[15]:datetime.datetime(2016, 1, 22, 15, 3)
但当我把它传给像这样的变量时
a= 1 / 22 / 2016 15:03
In[16]:dateconv1(str(a))
它不起作用,所以如何将其用引号或字符串表示,每一个帮助都会赞赏
假设您谈论的是pandas数据集,您可以使用pandasto_datetime((方法:
In [66]: dates = ['1 / 22 / 2016 15:03', 'Jul 22 2016 12:32PM', 'Jul 22 2016 5:40PM',
....: 'Jul 22 2016 8:31PM', 'Jul 23 2016 2:01PM', 'Jul 23 2016 7:24PM',
....: 'Jul 24 2016 4:30PM', 'Aug 1 2016 4:00PM', 'Aug 1 2016 7:49PM']
In [67]: df = pd.DataFrame({'d':dates})
In [68]: df.dtypes
Out[68]:
d object
dtype: object
d object
-表示d
列是字符串(对象(数据类型
In [69]: df
Out[69]:
d
0 1 / 22 / 2016 15:03
1 Jul 22 2016 12:32PM
2 Jul 22 2016 5:40PM
3 Jul 22 2016 8:31PM
4 Jul 23 2016 2:01PM
5 Jul 23 2016 7:24PM
6 Jul 24 2016 4:30PM
7 Aug 1 2016 4:00PM
8 Aug 1 2016 7:49PM
让我们把它转换成datetime
数据类型:
In [70]: df.d = pd.to_datetime(df.d)
In [71]: df
Out[71]:
d
0 2016-01-22 15:03:00
1 2016-07-22 12:32:00
2 2016-07-22 17:40:00
3 2016-07-22 20:31:00
4 2016-07-23 14:01:00
5 2016-07-23 19:24:00
6 2016-07-24 16:30:00
7 2016-08-01 16:00:00
8 2016-08-01 19:49:00
再次检查数据类型:
In [72]: df.dtypes
Out[72]:
d datetime64[ns]
dtype: object
您所拥有的不是定义Python变量的有效语法。您应该使用''
或""
进行包装,使其成为字符串:
a = "1 / 22 / 2016 15:03"
dateconv1(a)