熊猫Timedelta将十进制小时添加到现有时间戳中

问题描述 投票:0回答:1

目标:我想使用Timedelta将十进制格式的小时数添加到现有时间戳中。我当前的代码给我一个问题-可能是因为我不知道如何不创建列表(在如何解决问题上苦苦挣扎了一段时间)。嘿。

我有一个名为'df'的数据框,看起来大致如下:

+---------------------+----------+
|        Time         | AddHours |
+---------------------+----------+
| 2019-11-13 09:30:00 | 3.177481 |
| 2019-11-13 09:30:00 | 2.752435 |
| 2019-11-13 09:30:00 | 3.129910 |
| 2019-11-13 09:30:00 | 3.078170 |
| 2019-11-13 09:30:00 | 2.105979 |
| 2019-11-13 09:30:00 | 3.086892 |
+---------------------+----------+

字段数据类型因为了解此练习的数据类型可能很有用:df.dtypes返回:

Time          datetime64[ns]
AddHours            float64 <-- The units are hours. Eg 3.1202 hours

现有/问题代码现在-我遇到麻烦的部分。我目前有:

df['Time'] = df['Time'] + [pd.Timedelta(hours=ts) for ts in df['AddHours']]

这将返回一个我不知道如何克服的错误。我假设“对于df ['AddHours']中的ts”正在返回一个列表,实际上我只想为数据帧中的每一行添加df ['Time'] + df ['AddHours'],并且Timedelta允许我将AddHours视为十进制小时。

关于我要去哪里的问题以及如何解决的任何聪明的主意?

错误:

TypeError: unsupported operand type(s) for +: 'DatetimeIndex' and 'list'
python pandas dataframe timedelta
1个回答
0
投票

用途:

© www.soinside.com 2019 - 2024. All rights reserved.