[英]I have a dataframe table with a ticker column and a date column. I want to calculate the price of the ticker at the corresponding date
這是指定為df的表:
ID | 股票代碼 | 日期 |
---|---|---|
1 | PLTR | 2022-01-07 |
2 | GME | 2022-01-06 |
3 | 資產管理公司 | 2022-01-06 |
4 | 好的 | 2022-01-07 |
5 | 抓住 | 2022-01-07 |
6 | 全部 | 2022-01-06 |
7 | 為了 | 2022-01-06 |
我想要這樣的東西:
ID | 股票代碼 | 日期 | 價格 |
---|---|---|---|
1 | PLTR | 2022-01-07 | 16.56 美元 |
2 | GME | 2022-01-06 | 131.03 美元 |
3 | 資產管理公司 | 2022-01-06 | 22.46 美元 |
4 | 好的 | 2022-01-07 | 24.76 美元 |
5 | 抓住 | 2022-01-07 | 6.81 美元 |
6 | 全部 | 2022-01-06 | 122.40 美元 |
7 | 為了 | 2022-01-06 | 21.26 美元 |
我嘗試使用 yahoo 財務工具df['Price'] = yf.download(df['ticker'],df['date'])['Close']但收到錯誤:AttributeError: 'Series' object has no屬性“分裂”
我還嘗試了 pandas_datareader(作為 web 導入),得到了同樣的錯誤: df.assign(Price=web.DataReader(list(df.ticker('\n')), 'yahoo', list(df.date)) )['關']
任何建議/想法我做錯了什么?
import pandas as pd
import pandas_datareader.data as web
from datetime import date
tickers = list(df.ticker)
prices = ( web.DataReader(tickers,data_source='yahoo',start=df.date.min().date(),end=df.date.max().date())['Close']
.reset_index()
.melt(id_vars=['Date'])
.rename(columns={'Symbols':'ticker','Date':'date'})
)
prices:
日期 | 股票代碼 | 價值 | |
---|---|---|---|
0 | 2022-01-06 00:00:00 | PLTR | 16.74 |
1 | 2022-01-07 00:00:00 | PLTR | 16.56 |
2 | 2022-01-06 00:00:00 | GME | 131.03 |
3 | 2022-01-07 00:00:00 | GME | 140.62 |
4 | 2022-01-06 00:00:00 | 資產管理公司 | 22.46 |
5 | 2022-01-07 00:00:00 | 資產管理公司 | 22.99 |
6 | 2022-01-06 00:00:00 | 好的 | 25.03 |
7 | 2022-01-07 00:00:00 | 好的 | 24.76 |
8 | 2022-01-06 00:00:00 | 抓住 | 6.65 |
9 | 2022-01-07 00:00:00 | 抓住 | 6.81 |
10 | 2022-01-06 00:00:00 | 全部 | 122.4 |
11 | 2022-01-07 00:00:00 | 全部 | 125.95 |
12 | 2022-01-06 00:00:00 | 為了 | 21.26 |
13 | 2022-01-07 00:00:00 | 為了 | 20.19 |
現在合並它們:
df.merge(prices,on=['ticker','date'],how='left')
ID | 股票代碼 | 日期 | 價值 | |
---|---|---|---|---|
0 | 1 | PLTR | 2022-01-07 00:00:00 | 16.56 |
1 | 2 | GME | 2022-01-06 00:00:00 | 131.03 |
2 | 3 | 資產管理公司 | 2022-01-06 00:00:00 | 22.46 |
3 | 4 | 好的 | 2022-01-07 00:00:00 | 24.76 |
4 | 5 | 抓住 | 2022-01-07 00:00:00 | 6.81 |
5 | 6 | 全部 | 2022-01-06 00:00:00 | 122.4 |
6 | 7 | 為了 | 2022-01-06 00:00:00 | 21.26 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.