我有一个非常简单的python问题。我需要将np.array中的字符串值转换为datetime值。字符串值包含以下格式:('%Y%m%d')。有人知道怎么做吗? 这是我的测试数据:
date_str = np.array([['20121002', '20121002', '20121002'],
['20121003', '20121003', '20121003'],
['20121004', '20121004', '20121004']])
我尝试使用pandas库转换此数组。 这是我的代码:
import pandas as pd
pd.to_datetime(date_str, format="%d%m%Y")
请帮助我,应该有一个非常简单的方法来转换它,并注意我是一个python初学者。
答案 0 :(得分:0)
您可以创建一个数据框,然后apply
创建一个数据框:pd.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]')
答案 1 :(得分: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]]