【问题标题】:Difference in values from two columns into one column [duplicate]从两列到一列的值差异[重复]
【发布时间】:2017-08-18 08:38:03
【问题描述】:

我已将 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

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

【问题讨论】:

    标签: python pandas datetime timedelta


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多