【问题标题】:Convert number to time in Python在 Python 中将数字转换为时间
【发布时间】:2015-05-06 07:45:33
【问题描述】:
我有一个大型 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
有什么想法吗?
【问题讨论】:
标签:
python
pandas
datetime
【解决方案1】:
如果您将format 参数传递给to_datetime,您将获得以下信息:
In [111]:
t="1318"
pd.to_datetime(t, format='%H%M')
Out[111]:
Timestamp('1900-01-01 13:18:00')
但是,我不知道你是否想要这里的默认日期。
【解决方案2】:
这可能会有所帮助:
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”。
【解决方案3】:
对pd.to_datetime 方法使用format 关键字参数。
它是一个具有通常strftime 语法的字符串。