4

我想将分钟列表添加datetime64到新的 df 列中。

我尝试循环使用datetime.timedelta(minutes=x)for但结果,它为我的所有行添加了一个常量值。我该如何解决这个问题?

for x in wait_min:
    data['New_datetime'] = data['Date'] + datetime.timedelta(minutes=x)

我希望遍历列表并添加相应的分钟数,但这是为每一行添加一个 16 分钟的常量值。

4

3 回答 3

4

让我们试试

data['Date'] + pd.to_timedelta(wait_min, unit='m')
于 2019-08-03T02:01:45.803 回答
1

以下更改对我有用:

for i, x in enumerate(wait_min):
     data['New_Datetime'].iloc[i] = data['Date'].iloc[i] + datetime.timedelta(minutes=x)

可能不是最好的解决方案,但这适用于我正在尝试做的事情。

于 2019-08-03T01:39:49.240 回答
1

pandasSeries如果它们具有相同的长度,则按元素求和。您需要做的就是创建一个Series对象timedelta

因此,如果wait_min分钟列表的长度等于数据框中的行数,则可以这样做:

data['New_datetime'] = data['Date'] + pd.Series([datetime.timedelta(minutes=x) for x in wait_min])
于 2019-08-03T01:44:12.493 回答