从两列到一列的值差异
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
我已将 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