python - 两列到一列的值差异

标签 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

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

最佳答案

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

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

关于python - 两列到一列的值差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43015897/

相关文章:

php - 如何在mysql中求和不同的值

python - 从 python 记录到 logstash

python - 无法使用 pandas 0.17.1 附加数据帧,但可以使用 pandas 0.14.1

c# - 解释到UnixTimeMilliseconds

python-3.x - 如何使用Python从csv文件中删除日期除2020年以外的元素?

Python无法分割数据帧时间戳错误

python - 如何仅绘制日期时间数组的第一个毫秒数字

python - Tkinter - 如何将文本更改为图像?

python - 无法将我的 Python 包发布到 PyPi - Bad Gateway

python - 我想将列行字符串相乘 n 次