1

我有数据集,其中 A 列表示网络研讨会的开始时间,例如 2020 年 4 月 16 日上午 9:13 在第二列中,我的网络研讨会持续时间以分钟为单位,例如 70

我想创建网络研讨会结束时间的第三列,例如 2020 年 4 月 16 日上午 10:23

我尝试将两列都转换为 pd_datetime() 格式,但它显示错误。

data['Actual Duration'] = pd.to_datetime(data['Actual Duration']) data['Webinar start time'] = pd.to_datetime(data['Webinar start time']) data['Webinar end time'] = data['网络研讨会开始时间'].dt.time + data['实际持续时间'].dt.time

4

2 回答 2

0

用于to_timedeltatimedeltas 然后添加到日期时间,不需要转换为时间:

data = pd.DataFrame({'Webinar start time':['Apr 16, 2020 9:13 AM'], 'Actual Duration':[70]})

data['Webinar start time'] = pd.to_datetime(data['Webinar start time'])
data['Actual Duration'] = pd.to_timedelta(data['Actual Duration'], unit='Min') 
data['Webinar end time'] = data['Webinar start time'] + data['Actual Duration']
print (data)
   Webinar start time Actual Duration    Webinar end time
0 2020-04-16 09:13:00        01:10:00 2020-04-16 10:23:00
于 2020-05-18T13:38:26.983 回答
0

使用datetime.timedeltaLambda 函数计算结束:

from datetime import timedelta
import pandas as pd

df = pd.DataFrame([{'date': 'Apr 16, 2020 9:13 AM', 'duration': 70}])

def add_time(row):
    return row['date'] + timedelta(minutes=row['duration'])

df['date'] = pd.to_datetime(df['date'])
df['end'] = df.apply(add_time, axis=1)
print(df.head())
#                  date  duration                 end
# 0 2020-04-16 09:13:00        70 2020-04-16 10:23:00
于 2020-05-18T13:43:27.893 回答