Я ввожу несколько таблиц с несколькими столбцами данных. Для каждой электронной таблицы найдено максимальное значение каждого столбца. Затем для каждого элемента в столбце этот элемент делится на максимальное значение этого столбца. Выходными данными должно быть значение (от 0 до 1) для каждого элемента в столбце в порядке возрастания. Это добавляется в список, который должен быть добавлен в исходную электронную таблицу в виде столбца.
В настоящее время, насколько я понимаю, вложенные циклы работают правильно, кроме последнего шага. Каждый столбец добавляется в электронную таблицу, ЗА ИСКЛЮЧЕНИЕМ являются значения для последнего столбца исходной электронной таблицы, а не значения, относящиеся к каждому отдельному столбцу.
Я попытался изменить отступы, чтобы связать уровни кода с разными частями (поскольку я думаю, что это проблема), и попытался переместить добавленный столбец вдоль кадра данных, но безрезультатно.
for i in distlist:
#listname = i[4:] + '_norm'
df2 = pd.read_excel(i,header=0,index_col=None, skip_blank_lines=True)
df3 = df2.dropna(axis=0, how='any')
cols = []
for column in df3:
cols.append(column)
for x in cols:
listname = x + ' norm'
maxval = df3[x].max()
print(maxval)
mylist = []
for j in df3[x]:
findNL = (j/maxval)
mylist.append(findNL)
df3[listname] = mylist
saveloc = 'E:/test/'
filename = i[:-18] + '_Normalised.xlsx'
df3.to_excel(saveloc+filename, index=False)
Новые столбцы добавляются в выходной информационный кадр с заголовками на заказ, относящимися к заголовкам полей в исходной электронной таблице, и переименовываются в соответствии с (listname). Данные в каждом из этих новых столбцов идентичны и относятся к последнему столбцу электронной таблицы. Мне кажется, что он каждый раз перезаписывает значения (как если бы они проходили по всей электронной таблице, а не выводили для каждого столбца) и добавлял ее в электронную таблицу.
Любая помощь будет высоко ценится. Я думаю, что это что-то простое, но мне не удалось понять, что ...