【发布时间】:2020-07-07 11:14:55
【问题描述】:
我有两个数据框。一个是苹果股票的工作日和股价。另一个,持有每股收益的季度数据。但是,日期列表不同,但按时间顺序排列。我想将eps 框架的时序值添加到现有的价格数据框架中。
date close
0 2020-07-06 373.85
1 2020-07-02 364.11
2 2020-07-01 364.11
3 2020-06-30 364.80
4 2020-06-29 361.78
... ... ...
9969 1980-12-18 0.48
9970 1980-12-17 0.46
9971 1980-12-16 0.45
9972 1980-12-15 0.49
9973 1980-12-12 0.51
每股收益:
date eps
0 2020-03-28 2.59
1 2019-12-28 5.04
2 2019-09-28 3.05
3 2019-06-29 2.22
4 2019-03-30 2.48
... ... ...
71 2002-06-29 0.09
72 2002-03-30 0.11
73 2001-12-29 0.11
74 2001-09-29 -0.11
75 2001-06-30 0.17
所以我的结果应该是这样的:
close eps
date
...
2020-04-01 240.91 NaN
2020-03-31 254.29 NaN
2020-03-30 254.81 NaN
2020-03-28 NaN 2.59
2020-03-27 247.74 NaN
2020-03-26 258.44 NaN
注意值“2020-03-28”,以前只存在于 eps 框架中,现在整齐地放置在它所属的位置。
但是,我无法让它工作。首先,我认为必须有一个简单的 join、merge 或 concat 具有此功能,并且按时间顺序排列正确的数据,但到目前为止,我找不到它。
我的失败尝试:
-
pd.concat([df, eps], axis=0, sort=True)- 只是附加两个数据帧 -
pd.merge_ordered(df, eps, fill_method="ffill", left_by="date")- 简单地忽略 eps 日期
我们的目标是用两张图绘制这个 Dataframe - 一张是股票价格,另一张是 eps 数据。
【问题讨论】:
标签: python pandas dataframe date