gpt4 book ai didi

python - 用另一个数据框 pandas 的第一个值填充 0 和 1 系列的数据框

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:30 26 4
gpt4 key购买 nike

我有一个包含价格的 df:

close
SPY F AAPL
Date
1995-01-03 31.205567 5.503672 1.247298
1995-01-04 31.354707 5.651756 1.279801
1995-01-05 31.354707 5.602394 1.263550
1995-01-06 31.386606 5.602394 1.365121
1995-01-09 31.418575 5.701112 1.339220
1995-01-10 31.450542 5.602394 1.419970
1995-01-11 31.471809 5.602394 1.519510
1995-01-12 31.482511 5.553033 1.474819

我还有一个 df 信号,其键和索引与“关闭”相同

signals
Out:
SPY F AAPL
Date
1995-01-03 0 0 0
1995-01-04 1 0 1
1995-01-05 1 1 1
1995-01-06 0 1 1
1995-01-09 0 0 0
1995-01-10 1 1 0
1995-01-11 1 1 0
1995-01-12 1 0 1

我想用数据帧“关闭”的第一个值填充连续的“1”系列,其中信号从 0 切换到 1,例如

df
Out:
SPY F AAPL
Date
1995-01-03 0 0 0
1995-01-04 31.354707 0 1.279801
1995-01-05 31.354707 5.602394 1.279801
1995-01-06 0 5.602394 1.279801
1995-01-09 0 0 0
1995-01-10 31.450542 5.602394 0
1995-01-11 31.450542 5.602394 0
1995-01-12 31.450542 0 1.474819

在这方面确实需要帮助。谢谢!

最佳答案

这是一种方法:

>>> starts = signals & (signals != signals.shift())
>>> (close.where(starts).ffill() * signals).fillna(0)
SPY F AAPL
Date
1995-01-03 0.000000 0.000000 0.000000
1995-01-04 31.354707 0.000000 1.279801
1995-01-05 31.354707 5.602394 1.279801
1995-01-06 0.000000 5.602394 1.279801
1995-01-09 0.000000 0.000000 0.000000
1995-01-10 31.450542 5.602394 0.000000
1995-01-11 31.450542 5.602394 0.000000
1995-01-12 31.450542 0.000000 1.474819

关于python - 用另一个数据框 pandas 的第一个值填充 0 和 1 系列的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37307403/

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