这个问题远非唯一,但是我找不到将这个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
答案 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