如何将此字符串单独转换为日期时间和日期

时间:2014-05-24 11:30:35

标签: date datetime pandas

这个问题远非唯一,但是我找不到将这个df列中包含的字符串转换为datetime和date对象的方法,以便将它们用作我的数据帧的索引。

如何将此字符串转换为日期时间或日期格式,以将其用作我的df的索引?

本专栏的格式如下:

>>> data['DateTime']
0     20140101 00:00:00
1     20140101 00:00:00
3     20140101 00:00:00
4     20140101 00:00:00
5     20140101 00:00:00
6     20140101 00:00:00
7     20140101 00:00:00
8     20140101 00:00:00
9     20140101 00:00:00 
10    20140101 00:00:00
Name: DateTime, Length: 3779, dtype: object

1 个答案:

答案 0 :(得分:2)

使用to_datetime将字符串转换为日期时间,您可以传递格式化字符串,但在这种情况下,它似乎处理得很好,如果您想要一个日期,则调用apply并使用在每个日期时间条目上调用.date()的lambda:

In [59]:

df = pd.DataFrame({'DateTime':['20140101 00:00:00']*10})
df

Out[59]:
            DateTime
0  20140101 00:00:00
1  20140101 00:00:00
2  20140101 00:00:00
3  20140101 00:00:00
4  20140101 00:00:00
5  20140101 00:00:00
6  20140101 00:00:00
7  20140101 00:00:00
8  20140101 00:00:00
9  20140101 00:00:00
In [60]:

df['DateTime'] = pd.to_datetime(df['DateTime'])
df.dtypes
Out[60]:
DateTime    datetime64[ns]
dtype: object
In [61]:

df['DateTime'] = df['DateTime'].apply(lambda x:x.date())
print(df)
df.dtypes
     DateTime
0  2014-01-01
1  2014-01-01
2  2014-01-01
3  2014-01-01
4  2014-01-01
5  2014-01-01
6  2014-01-01
7  2014-01-01
8  2014-01-01
9  2014-01-01
Out[61]:
DateTime    object
dtype: object