如何在pandas数据框架的列中添加小时?[英] how to add hour to pandas dataframe column

本文是小编为大家收集整理的关于如何在pandas数据框架的列中添加小时?的处理方法,想解了如何在pandas数据框架的列中添加小时?的问题怎么解决?如何在pandas数据框架的列中添加小时?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个像以下的熊猫数据帧时间列.

 segments_data['time']
 Out[1585]: 
 0      04:50:00
 1      04:50:00
 2      05:00:00
 3      05:12:00
 4      06:04:00
 5      06:44:00
 6      06:44:00
 7      06:47:00
 8      06:47:00
 9      06:47:00

我想在上述时间列中添加5个小时30分钟. 我在Python上做关注.

pd.DatetimeIndex(segments_data['time']) + pd.DateOffset(hours=5,minutes=30)

,但它给了我一个错误.

TypeError: object of type 'datetime.time' has no len()

请帮助.

推荐答案

这是一种笨拙的方法,主要是问题是缺乏对time对象的矢量支持,因此您首先需要使用combine将time>转换为combine然后应用偏移量并恢复time组件:

In [28]:  
import datetime as dt  
df['new_time'] = df['time'].apply(lambda x: (dt.datetime.combine(dt.datetime(1,1,1), x,) + dt.timedelta(hours=3,minutes=30)).time())
df

Out[28]:
           time  new_time
index                    
0      04:50:00  08:20:00
1      04:50:00  08:20:00
2      05:00:00  08:30:00
3      05:12:00  08:42:00
4      06:04:00  09:34:00
5      06:44:00  10:14:00
6      06:44:00  10:14:00
7      06:47:00  10:17:00
8      06:47:00  10:17:00
9      06:47:00  10:17:00

其他推荐答案

从'0.25.3'开始,这与

一样简单
df[column] = df[column] + pd.Timedelta(hours=1)

其他推荐答案

您可以尝试导入timedelta:

from datetime import datetime, timedelta

,然后:

segments_data['time'] = pd.DatetimeIndex(segments_data['time']) + timedelta(hours=5,minutes=30)

本文地址:https://www.itbaoku.cn/post/1728125.html