如何在 pandas 中找到高于阈值的值并将它们与日期一起存储

how to find values above threshold in pandas and store them with date

我有一个包含股票价格的 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% 的股票,并将名称、日期和上涨百分比保存在 pandas.

如有帮助将不胜感激

可能有更有效的方法,但我会使用 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()。