栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

熊猫日期列减法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

熊猫日期列减法

您可以下拉到NumPy数组并在那里执行datetime /
timedelta算术
。首先,创建一个dtype日期数组

datetime64[D]

dates = speed['created_time'].values.astype('datetime64[D]')

然后,您有两个选择:可以转换

reached_time
为日期,并从日期中减去日期:

speed['reached_date'] = dates + speed['reached_time'].valuesspeed['diff'] = speed['created_time'] - speed['reached_date']

或者您可以转换

created_time
为timedeltas,并从timedeltas中减去timedeltas:

speed['created_delta'] = speed['created_time'].values - datesspeed['diff'] = speed['created_delta'] - speed['reached_time']

import pandas as pdspeed = pd.Dataframe(    {'created_time':      ['2016-01-02 12:57:44', '2016-01-02 12:57:44', '2016-01-03 10:38:51',      '2016-01-03 10:38:51', '2016-01-03 10:38:52', '2016-01-03 10:38:52',      '2016-01-03 10:38:52', '2016-01-03 10:38:52', '2016-01-03 10:38:52'],     'reached_time':      ['14:20:22', '13:01:38', '12:24:07', '12:32:11', '12:23:20',       '12:51:34', '12:53:33', '13:04:08', '13:13:40']})speed['reached_time'] = pd.to_timedelta(speed['reached_time'])speed['created_time'] = pd.to_datetime(speed['created_time'])dates = speed['created_time'].values.astype('datetime64[D]')speed['reached_date'] = dates + speed['reached_time'].valuesspeed['diff'] = speed['created_time'] - speed['reached_date']# alternatively# speed['created_delta'] = speed['created_time'].values - dates# speed['diff'] = speed['created_delta'] - speed['reached_time']print(speed)

产量

         created_time  reached_time        reached_date   diff0 2016-01-02 12:57:44      14:20:22 2016-01-02 14:20:22 -1 days +22:37:221 2016-01-02 12:57:44      13:01:38 2016-01-02 13:01:38 -1 days +23:56:062 2016-01-03 10:38:51      12:24:07 2016-01-03 12:24:07 -1 days +22:14:443 2016-01-03 10:38:51      12:32:11 2016-01-03 12:32:11 -1 days +22:06:404 2016-01-03 10:38:52      12:23:20 2016-01-03 12:23:20 -1 days +22:15:325 2016-01-03 10:38:52      12:51:34 2016-01-03 12:51:34 -1 days +21:47:186 2016-01-03 10:38:52      12:53:33 2016-01-03 12:53:33 -1 days +21:45:197 2016-01-03 10:38:52      13:04:08 2016-01-03 13:04:08 -1 days +21:34:448 2016-01-03 10:38:52      13:13:40 2016-01-03 13:13:40 -1 days +21:25:12

使用HRYR的改进,您可以进行计算而无需下拉到NumPy数组(即,无需访问

.values
):

dates = speed['created_time'].dt.normalize()speed['reached_date'] = dates + speed['reached_time']speed['diff'] = speed['created_time'] - speed['reached_date']


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号