我尝试将pandas数据框的一列从以下格式更改为:162000
到16:20:00
(%H%M%S)
我试过这个:
t = mydataframe['column name']
pd.to_datetime(t, format='%H%M%S')
但是我收到了这个错误:
TypeError: 'long' object is unsliceable
但是,如果我不使用格式参数,我会得到:
1970-01-01 00:00:00.000162000
这里发生了什么?
修改
t.dtype
Name: column name, dtype: int64
print t.head(5)
0 162000
1 161200
2 162400
3 163600
4 164800
t.to_dict()
{0: 162000,
1: 161200,
2: 162400,
3: 163600,
4: 164800, ...
EDIT2:
好的,重新启动笔记本内核,解决了这个问题!电脑呃? :d
好的,现在我有这种格式:
1900-01-01 16:20:00
我怎样才能改变这一点,to_datetime只给我16:20:00
?
EDIT3:
知道了!顺便说一下,我的第二个问题的答案就在这里:How to change the datetime format in pandas
答案 0 :(得分:1)
您需要使用.dt.time
来获取新datetime
对象的时间部分。
pd.to_datetime(t, format='%H%M%S').dt.time
您还需要将上述输出重新分配给您的数据帧。将其分配给新列,或将其重新分配回原始列。
将其分配给现有列:
mydataframe['column name'] = pd.to_datetime(t, format='%H%M%S').dt.time
将其分配给新列:
mydataframe['new column'] = pd.to_datetime(t, format='%H%M%S').dt.time
在任何一种情况下,您都会得到一个看起来像这样的数据框
Times
0 16:20:00
1 16:12:00
2 16:24:00
3 16:36:00
4 16:48:00