raise KeyError(key) from err KeyError
Нужно посчитать прогноз по формуле, это все реализовал, но возникла ошибка, как ее исправит не понимаю, уже много чего перепробовал? вот мой код
import pandas as pd
# Импортирую
excel_file = pd.ExcelFile('example.xlsx')
require_cols = [1]
df = pd.read_excel('example.xlsx', usecols=require_cols)
df_min_max = df.aggregate(['min', 'max'])
my_list = df["Data"].tolist()
# Меняем кол-во интервалов
bins = 9
# Сопоставляем данные с интервалами
df["Interval"] = pd.cut(df["Data"], bins,
labels=["A" + str(x) for x in range(1, bins + 1)])
# Разбиваем на группы
df["Interval"] = df["Interval"].astype(str)
df.loc[1:, "Groups"] = df.loc[1:, "Interval"] + "-" + df["Interval"].shift().loc[1:]
#df.loc[1:, "Groups"] = df["Interval"].shift().loc[1:] # Просто А куда приходим
iv = df["Interval"] = pd.cut(df["Data"], bins, labels=["A" + str(x) for x in range(1, bins + 1)])
res = (df
.dropna(subset=["Groups"])
.groupby("Interval")
.agg(Groups=("Groups", lambda x: ','.join(x.unique()
)),
sred=("Data", "mean"),
pairs=("Data", "count")))
# res["pairs"] = res["Groups"].str.split(";").apply(lambda x: len(x))
# res["sred"] = df.groupby("Interval")["Data"].mean()
# Выводим результаты
# print(my_list)
# print(df_min_max)
# print(iv)
print(res)
def prognoz(words):
# чисто для того что бы избавиться от A2-A3; A2-A2; A2-A1; A2-A2 и сделать из него множество Аi'
AAA = []
for word in words:
aaa = (str.split(word, sep="-"))
for a in aaa:
a = (str.split(a, sep=";"))
AAA.append(a[0])
return (set(AAA))
f = []
for i, _ in enumerate(df["Data"]): # по факту просто цикл от 0 до 21
A = (df.iloc[i, 1]) # нахожу к какой А отнесли эту строку
words = (res['Groups'][A]) # нахожу в какую группу входит данные с найденной строки
par = (res['pairs'][A]) # нахожу на что буду делить
sum = 0 # сюда прогноз суммирую
print(A, '*********', words)
for j in (prognoz(str.split(words))): # цикл по всем А из группы
sum += res['sred'][j]
# print(res['sred'][j])
prog = sum / par
f.append(prog)
print(prog)
print(f)
Вот ошибка
Traceback (most recent call last):
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2895, in get_loc
return self._engine.get_loc(casted_key)
File "pandas/_libs/index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 101, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1675, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1683, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'A2,A2'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/kirill/pythonProject/main.py", line 64, in <module>
sum += res['sred'][j]
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/series.py", line 882, in __getitem__
return self._get_value(key)
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/series.py", line 989, in _get_value
loc = self.index.get_loc(label)
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2893, in get_loc
casted_key = self._maybe_cast_indexer(key)
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/indexes/category.py", line 437, in _maybe_cast_indexer
code = self.categories.get_loc(key)
File "/home/kirill/pythonProject/venv/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2897, in get_loc
raise KeyError(key) from err
KeyError: 'A2,A2'