减去两个pandas datetime.time列

时间:2017-03-24 14:23:48

标签: python python-2.7 pandas datetime

这应该很简单,但我被卡住了。任何帮助将不胜感激。我正在使用python 2.7。

我已将.xlsx导入数据框。

import pandas as pd

# Open excel file as object
all = pd.ExcelFile('trash prediction.xlsx')
raw = all.parse('Sheet1', skiprows=0, na_values=['NA'])

# Drop rows without time information
raw = raw.drop(raw.index[0:27])

raw.columns = ['date', 'id', 'marketer_prediction', 
               'start', 'steps','truck_is','trash_prediction',
              'total', 'top','mid','bot','problems','finish']

raw.dtypes

输出

    date                   datetime64[ns]
id                             object
marketer_prediction            object
start                          object
steps                         float64
truck_is                       object
trash_prediction               object
total                         float64
top                           float64
mid                           float64
bot                           float64
problems                       object
finish                         object
dtype: object

我想从raw.start中减去raw.finish,它们是excel表中的时间,但是在数据框中,它们都被标记为对象。

raw.finish-raw.start

给出错误:" TypeError:不支持的操作数类型 - :' datetime.time'和' datetime.time'"

为什么dtype说raw.finish和raw.start是对象,而当我减去它们时,它们被标记为datetime.time?有没有其他方法可以显示列是datetime.time?

这个example使用pd.to_datetime将列转换为datetime64 [ns],但是当我尝试以下内容时

raw['start'] = pd.to_datetime(raw['start'])

我收到错误:" TypeError:类型' datetime.time'的对象没有len()"

减去它们的时间应该是什么格式,以及如何将它们转换为该格式?

0 个答案:

没有答案