如何将此字符串单独转换为datetime和date

如何将此字符串单独转换为datetime和date,date,datetime,pandas,Date,Datetime,Pandas,这个问题远非唯一,但我无法找到一种方法将此df列中包含的字符串转换为datetime和date-alone对象,以便将它们用作我的数据帧的索引 如何将此字符串转换为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

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

如何将此字符串转换为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

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

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

如果不清楚,格式为:年、月、日。谢谢。仅供参考,您可以使用DatetimeIndex包装并使用date()