gpt4 book ai didi

python - 如果日期位于当前索引和上一个索引之间,则将值添加到索引为 'datetime' 的数据帧的当前行

转载 作者:行者123 更新时间:2023-12-01 08:07:27 25 4
gpt4 key购买 nike

我有两个数据帧 stockDataEPSdata 如下。
stockData 将是

            Close 
Date
2018-12-31 157.066376
2018-09-30 223.994431
2018-06-30 183.036682
2018-03-31 165.263504
2017-12-31 166.014908
2017-09-30 150.650375
2017-06-30 140.227097
2017-03-31 139.301605
2016-12-31 111.821404
2016-09-30 108.589523
2016-06-30 91.333252
2016-03-31 103.495514
2015-12-31 99.414101
2015-09-30 103.730179
......

EPSData将为

           Surprise_perc
Date
2018-11-01 4.30
2018-07-31 7.83
2018-05-01 1.49
2018-02-01 1.83
2017-11-02 10.70
2017-08-01 6.37
2017-05-02 3.96
2017-01-31 4.35
2016-10-25 0.60
2016-07-26 2.16
.......

我如何组合这两个数据框?
EPSData 中的第一个数据点“2018-11-01 4.30”应添加到 stockData 中的 Q4,即数据点“2018-12-31 157.066376"。
输出应该类似于

            Close       Surprise_perc
Date
2018-12-31 157.066376 4.30
2018-09-30 223.994431 7.83
2018-06-30 183.036682 1.49
2018-03-31 165.263504 1.83
2017-12-31 166.014908 10.70
2017-09-30 150.650375 6.37
2017-06-30 140.227097 3.96
2017-03-31 139.301605 4.35
2016-12-31 111.821404 0.60
2016-09-30 108.589523 2.16
.....

这里两个数据帧都按日期索引。

最佳答案

使用merge_asofDataFrame.sort_index :

df = (pd.merge_asof(stockData.sort_index(), 
EPSData.sort_index(),
left_index=True,
right_index=True)
.sort_index(ascending=False))
print (df)
Close Surprise_perc
Date
2018-12-31 157.066376 4.30
2018-09-30 223.994431 7.83
2018-06-30 183.036682 1.49
2018-03-31 165.263504 1.83
2017-12-31 166.014908 10.70
2017-09-30 150.650375 6.37
2017-06-30 140.227097 3.96
2017-03-31 139.301605 4.35
2016-12-31 111.821404 0.60
2016-09-30 108.589523 2.16
2016-06-30 91.333252 NaN
2016-03-31 103.495514 NaN
2015-12-31 99.414101 NaN
2015-09-30 103.730179 NaN

关于python - 如果日期位于当前索引和上一个索引之间,则将值添加到索引为 'datetime' 的数据帧的当前行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55472020/

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