У меня есть более 1000 файлов .txt с датами и ценами акций, которые я поместил в словарь (с именем файла (тикер акций) в качестве ключа и данные для каждого файла в виде фрейма данных). Я рассчитал скользящую среднюю с помощью .rolling, затем нашел процентную разницу между скользящей средней и ценой. Таким образом, разница в процентах - это отдельный столбец для каждого DataFrame. Код для всего этого выглядит следующим образом:
filelist = os.listdir(r'Insert File Path')
filepath = r'Insert File Path'
dic1 = {}
for file in filelist:
df = pd.read_csv(filepath + file,sep='\t')
dic1[file]= df
for value in dic1.values():
value.rename(columns={value.columns[0]:'Dates',value.columns[1]:'Prices'},inplace=True)
for value in dic1.values():
value['ma'] = value['Prices'].rolling(window=50).mean()
for value in dic1.values():
value['diff'] = value['Prices'] - value['ma']
for value in dic1.values():
value['pctdiff']= value['diff']/value['Prices']
Мой вопрос: как мне найти 5 самых больших (и самых маленьких, потому что они могут быть отрицательными) столбцов pctdiff?
Я пробовал:
for df in dic1.values():
for num in df['pctdiff'].max():
print(num.max())
, но я получаю следующую ошибку: «объект с плавающей точкой не повторяется»