计算数据框两列之间的时差,以小时或秒为单位

时间:2019-05-27 10:08:05

标签: python pandas timedelta

我正在尝试使用主要是熊猫数据帧操纵的python代码来计算机器停机时间。如果在任何一天中都有维修编号开始,那么我要花一天的时间和工作订单的开始之间的时间作为我的机器可用时间。我已经创建了一天开始时间的列,就像每一行都是一天级的,所以当有维修订单时,我只需要减去两个时间字段,就可以以秒/小时为单位得到我的答案。但由于“ Timedelta”对象没有属性“ astype”,我目前遇到错误。我尝试了这里建议的一些选项,但是没有用。我知道我做的事情根本上是错误的,请指出正确的方向。

for i, row in df4.iterrows():
    if (row['Date'] == row['START_DATE']) | (row['Date'] == row['END_DATE']):
        if (row['START_DATE'] == row['Date']) & (row['END_DATE'] != row['Date']):

            value = pd.to_timedelta(row.REPAIR_START-row.Date_start).astype('timedelta64[h]')
            df4.set_value(i,'avail',value)

        if (row['START_DATE'] != row['Date']) & (row['END_DATE'] == row['Date']):

            value = pd.to_timedelta((row.REPAIR_FINISH-row.Date_end)).astype('timedelta64[h]')
            df4.set_value(i,'avail',value)

        if (row['START_DATE'] == row['Date']) & (row['END_DATE'] == row['Date']):
            value = pd.to_timedelta((row.REPAIR_START-row.REPAIR_FINISH)).astype('timedelta64[h]')
            df4.set_value(i,'avail',value)
        else: df4.set_value(i,'avail',full_day)

数据处于“机器”,“日期”级别。代码元数据的说明:
日期:每日日期
START_DATE:修复时间戳记中只有日期部分
END_DATE:修复时间戳记中只有日期部分
REPAIR_START:维修单开始时间戳
REPAIR_START:维修订单结束时间戳记

0 个答案:

没有答案