我有一個包含股票價格的 DF,我想查找每天高于閾值的股票價格并記錄日期、漲幅百分比和股票名稱。
import pandas as pd
import requests
import time
import pandas as pd
import yfinance as yf
stock_ticker=['AAPL','MSFT','LCID','HOOD','TSLA]
df = yf.download(stock_tickers,
start='2020-01-01',
end='2021-06-12',
progress=True,
)
data=df['Adj Close']
data=data.pct_change()
data.dropna(inplace=True)
top=[]
for i in range(len(data)):
if i>.01 :
top.append(data.columns[i])
我嘗試做一個 for 回圈,但它保存了所有代碼名稱我想要做的是找到每天增加 1% 的股票,并在熊貓中保存名稱、日期和百分比增加。
任何幫助將不勝感激
uj5u.com熱心網友回復:
可能有更有效的方法,但我會使用 DataFrame.iteritems()。下面附上一個例子。我保留了重復的日期索引,因為我不確定您希望如何保留資料。
data = df["Adj Close"].pct_change()
threshold = 0.01
df_above_th_list = []
for item in data.iteritems():
stock = item[0]
sr_above_th = item[1][item[1] > threshold]
df_above_th_list.append(pd.DataFrame({"stock": stock, "pct": sr_above_th}))
df_above_th = pd.concat(df_above_th_list)
如果要按行處理資料,可以使用 DataFrame.iterrows() 或 DataFrame.itertuples()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/452798.html
上一篇:有沒有辦法讓for回圈更快?
