首页 > 解决方案 > 如何根据 pandas 中的一组特定日期和 python 中的 datareader 获得一组价格

问题描述

我是 pandas 和 python 的初学者,我正在尝试分析股票数据。我得到了我想要的股息日期的股息数据。现在我想回到 10 天,看看那个日期的价格。我成功添加了新列,但无法根据新列添加价格

            action     value   Date -10 Days   price -10 days
2020-07-16  DIVIDEND    0.0900  2020-07-06  ###
2020-04-16  DIVIDEND    0.1870  2020-04-06  ###
2020-01-16  DIVIDEND    0.1870  2020-01-06  ###
import datetime
import pandas_datareader as pdr
from pandas_datareader import data

stc = data.DataReader('4339.SR', 'yahoo-actions')
price10 = pdr.get_data_yahoo('4339.SR')
end_date = stc.index + datetime.timedelta(days=-10)
stc['Date -10 Days'] = end_date
stc['price -10 days'] = '###'
stc
    

我应该怎么做才能插入 2020-07-06 和 2020-04-06....等的新价格

非常感谢

标签: pythonpandaspandas-datareader

解决方案


'df.merge' 用于查找数据框与收盘价的左连接。

stc.merge(price10[['Close']], left_on='Date -10 Days', right_index=True, how='left')

    action  value   Date -10 Days   Close
2020-07-16  DIVIDEND    0.0900  2020-07-06  9.49
2020-04-16  DIVIDEND    0.1870  2020-04-06  10.00
2020-01-16  DIVIDEND    0.1870  2020-01-06  10.58
2019-10-14  DIVIDEND    0.1870  2019-10-04  NaN
2019-07-16  DIVIDEND    0.1870  2019-07-06  NaN
2019-04-16  DIVIDEND    0.1870  2019-04-06  NaN
2019-01-01  DIVIDEND    0.1870  2018-12-22  NaN
2018-12-30  DIVIDEND    0.1870  2018-12-20  8.20
2018-10-01  DIVIDEND    0.1810  2018-09-21  NaN
2018-09-27  DIVIDEND    0.1810  2018-09-17  8.02
2018-06-27  DIVIDEND    0.1810  2018-06-17  8.02
2018-03-28  DIVIDEND    0.1023  2018-03-18  NaN

推荐阅读