Я знаю, что задача довольно простая, но не могу найти ошибку.
Мне нужно отсортировать значения в 5 равных группах на основе условий, которые различны для каждой строки в df.
Для распределения в равных группах я использую функцию процентиля. В результате у меня должно быть 5 групп с равным количеством составляющих.
Я использую следующий код:
df = pd.read_excel('data.xlsx', sheet_name=['Cap'], index_col='Date')
year = list(df.index)
stocks = list(df.columns)
df = df.to_numpy()
for y in range(len(year)):
for j in range(len(stocks)):
if (df[y][j] > np.nanpercentile(df[y], 80)):
df[y][j] = 5
elif (df[y][j] > np.nanpercentile(df[y], 60)):
df[y][j] = 4
elif (df[y][j] > np.nanpercentile(df[y], 40)):
df[y][j] = 3
elif (df[y][j] > np.nanpercentile(df[y], 20)):
df[y][j] = 2
elif (df[y][j] > np.nanpercentile(df[y], 0)):
df[y][j] = 1
else:
df[y][j] = np.NaN
Однако, когда я экспортирую данные в Excel и считаю количество чисел составляющих для каждой группы в каждой строке, я получаю запутанный результат.
Не могли бы вы, пожалуйста, помогите мне решить эту проблему?