2016-09-15 225 views
-1

我有一个非常简单的python问题。我需要将np.array中的字符串值转换为日期时间值。字符串值包含以下格式:('%Y%m%d')。有人知道如何做到这一点吗? 这里我的测试数据:在np.array(dtype ='datetime')中转换np.array(dtype ='str')

date_str = np.array([['20121002', '20121002', '20121002'], 
        ['20121003', '20121003', '20121003'], 
        ['20121004', '20121004', '20121004']]) 

我尝试这个数组转换与大熊猫库。 这里是我的代码:

import pandas as pd  
pd.to_datetime(date_str, format="%d%m%Y") 

请帮我应该有转换这一点,注意,我是个初学者蟒蛇一个非常简单的方法。

回答

0

您可以创建一个数据帧,然后applypd.to_datetime

In [68]: pd.DataFrame(date_str).apply(pd.to_datetime) 
Out[68]: 
      0   1   2 
0 2012-10-02 2012-10-02 2012-10-02 
1 2012-10-03 2012-10-03 2012-10-03 
2 2012-10-04 2012-10-04 2012-10-04 

为了验证结果的类型,这里是第一列的类型,例如:

In [73]: pd.DataFrame(date_str).apply(pd.to_datetime).iloc[:, 0].dtype 
Out[73]: dtype('<M8[ns]') 
+0

嗨Nehal J Wani, – angi

+0

谢谢你的芒。即使使用整数值,它也可以很好地工作。 – angi

0

将数组的每个元素转换为pandas series,然后执行to_datetime()操作。

In [81]: [pd.to_datetime(pd.Series(x), format="%Y%m%d") for x in date_str] 
Out[81]: 
[0 2012-10-02 
1 2012-10-02 
2 2012-10-02 
dtype: datetime64[ns], 0 2012-10-03 
1 2012-10-03 
2 2012-10-03 
dtype: datetime64[ns], 0 2012-10-04 
1 2012-10-04 
2 2012-10-04 
dtype: datetime64[ns]]