我有一个大型CSV文件,其中包含一个名为TIME的列。它写成1318,我想使用Python / Pandas将数据转换为13:18并将其视为时间而不是int64。
我尝试过这样的事情,但这不是我想要的:
df['TIME'] = pd.to_datetime(df['TIME'])
因为我得到了这个:
1970-01-01 00:00:00.000001318
1970-01-01 00:00:00.000001041
1970-01-01 00:00:00.000000853
有什么想法吗?
答案 0 :(得分:4)
如果您将format参数传递给to_datetime
,您将获得以下信息:
In [111]:
t="1318"
pd.to_datetime(t, format='%H%M')
Out[111]:
Timestamp('1900-01-01 13:18:00')
但是,我不知道你是否想要一个默认日期。
答案 1 :(得分:2)
将format
关键字参数用于pd.to_datetime
方法。
这是一个包含通常strftime
语法的字符串。
答案 2 :(得分:1)
这可能会有所帮助:
def extractTime(l):
tt = (l.split(' ')[1]).split('.')[1][-4:];
return tt[:2] + ':' + tt[-2:];
if __name__ == '__main__':
l = "1970-01-01 00:00:00.000001318";
print extractTime(l);
它将打印出来" 13:18"对于测试用例。