两列中的值与一列的差异

时间:2017-03-25 11:40:27

标签: python pandas datetime timedelta

我已经在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

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

1 个答案:

答案 0 :(得分:3)

您只需转换为日期时间类型并以分钟计算增量:

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