gpt4 book ai didi

python - 在 pandas 中获取索引开始后的分钟列

转载 作者:行者123 更新时间:2023-12-01 04:35:45 31 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

                     Ask Price   Ask Yld
DateTime
2010-03-10 13:00:00 4.031992 0.152202
2010-03-10 13:01:00 4.032859 0.152091
2010-03-10 13:02:00 4.033910 0.151957
2010-03-10 13:03:00 4.034197 0.151920
2010-03-10 13:04:00 4.035106 0.151803
2010-03-11 13:00:00 4.033333 0.166666

并且有一个跨越很多天的日期时间索引。

我想创建一个列,其中包含该行的第一个索引之后的时间量(以分钟为单位),即创建如下所示的输出:

                     Ask Price   Ask Yld  Minutes after start
DateTime
2010-03-10 13:00:00 4.031992 0.152202 0
2010-03-10 13:01:00 4.032859 0.152091 1
2010-03-10 13:02:00 4.033910 0.151957 2
2010-03-10 13:03:00 4.034197 0.151920 3
2010-03-10 13:05:00 4.035106 0.151803 5
2010-03-11 13:00:00 4.033333 0.166666 1440

我知道我可以简单地用一个日期时间减去另一个日期时间来找到时间增量 - 但我不知道如何应用它来创建一个新列。

最佳答案

您可以执行减法来获得 TimeDeltaIndex,其值为 .seconds属性,您只需将其除以 60 即可得到分钟数:

In [220]:
df['Minutes after start'] = (df.index - df.index[0]).seconds/60
df

Out[220]:
Ask Price Ask Yld Minutes after start
DateTime
2010-03-10 13:00:00 4.031992 0.152202 0
2010-03-10 13:01:00 4.032859 0.152091 1
2010-03-10 13:02:00 4.033910 0.151957 2
2010-03-10 13:03:00 4.034197 0.151920 3
2010-03-10 13:04:00 4.035106 0.151803 4

编辑

您可以将 timedeltaindex 转换为 timedelta64[s]:

In [237]:
df['Minutes after start'] = (df.index - df.index[0]).astype('timedelta64[s]')/60
df

Out[237]:
Ask Price Ask Yld Minutes after start
DateTime
2010-03-10 13:00:00 4.031992 0.152202 0
2010-03-10 13:01:00 4.032859 0.152091 1
2010-03-10 13:02:00 4.033910 0.151957 2
2010-03-10 13:03:00 4.034197 0.151920 3
2010-03-10 13:04:00 4.035106 0.151803 4

这应该等于总秒数

关于python - 在 pandas 中获取索引开始后的分钟列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747832/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com