从两列到一列的值差异

Difference in values from two columns into one column

我已将 csv 读入数据框,如下所示:

import pandas as pd

data = pd.read_csv('mydata.csv', encoding = 'ISO-8859-1')

数据框如下所示:

    first_time     second_time

1   11/2/17 0:05   11/2/17 0:09

2   12/2/17 0:40   12/2/17 0:17

3   13/2/17 0:12   13/2/17 1:40

我想创建一个名为 duration 的新列,它会在每一行中找到两列的持续时间(分钟):

    first_time     second_time    duration

1   11/2/17 0:05   11/2/17 0:09   4

2   12/2/17 0:40   12/2/17 0:47   7

3   13/2/17 0:12   13/2/17 1:40   88

我怎样才能有效地做到这一点?通常我会尝试解析日期,并提取时间值,但这似乎效率不高。

您可以直接转换为日期时间类型并以分钟为单位计算增量:

import pandas as pd

data = pd.DataFrame({'first_time': ['11/2/17 0:05', '12/2/17 0:40', '13/2/17 0:12'],
                     'second_time': ['11/2/17 0:09', '12/2/17 0:47', '13/2/17 1:40']})

data['duration'] = pd.to_datetime(data['second_time']) - pd.to_datetime(data['first_time'])
data['duration'] = data['duration'].astype('timedelta64[m]')

这将给出:

     first_time   second_time  duration
0  11/2/17 0:05  11/2/17 0:09       4.0
1  12/2/17 0:40  12/2/17 0:47       7.0
2  13/2/17 0:12  13/2/17 1:40      88.0