使用python pandas将hhmmss转换为时间

时间:2015-06-16 16:33:23

标签: datetime pandas

我正在阅读文本文件,将数据转换为pandas DataFrame,然后尝试将两列(hhmmss)中的时间转换为时间格式,以便我可以减去列(开始时间hhmmss < / strong>)来自(结束时间hhmmss )并将其存储在另一列“delta”中。我无法将hhmmss转换为hh:mm:ss格式,以便我可以使用减法运算。

我尝试了很多组合,例如下面的一个组合,但无法让任何组合工作

df = pd.read_table('sample.txt', sep= '\t')
FMT = '%H%M%S'
df['Start time hhmmss'] = datetime.strptime(df['Start time hhmmss'], FMT)

我可以得到一些帮助吗?

这里建议的是两栏的负责人:

enter code here
df['Start time hhmmss'] .head()
Out[28]:
0    123045
1    134500
2    102367
3     90823
4    134523
Name: Start time hhmmss, dtype: int64

enter code here
df['End time hhmmss'] .head()
Out[29]:
0    234567
1    153436
2    134523
3    104512
4    162345
Name: End time hhmmss, dtype: int64

1 个答案:

答案 0 :(得分:0)

显然数据有一些固有的问题,因为它与小时,分钟,秒不对应:

 import pandas as pd

 df = pd.DataFrame({
    'a': ['123045', '134500', '102367']})
 pd.to_datetime(df.a.astype(str), format='%h%M%S')

给出错误

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-b4af62ff61ff> in <module>()
----> 1 pd.to_datetime(df.a.astype(str), format='%H%M%S')

/home/amit/.local/lib/python2.7/site-packages/pandas/tseries/tools.pyc in to_datetime(arg, errors, dayfirst, utc, box, format, exact, coerce, unit, infer_datetime_format)
335         return arg
336     elif isinstance(arg, Series):
--> 337         values = _convert_listlike(arg.values, False, format)
338         return Series(values, index=arg.index, name=arg.name)
339     elif com.is_list_like(arg):

/home/amit/.local/lib/python2.7/site-packages/pandas/tseries/tools.pyc in _convert_listlike(arg, box, format)
328                 return DatetimeIndex._simple_new(values, None, tz=tz)
329             except (ValueError, TypeError):
--> 330                 raise e
331 
332     if arg is None:

ValueError: unconverted data remains: 7
不幸的是,这很有意义,不是吗?如何以这种格式解释102367