#python #excel #dataframe #dictionary #for-loop
#python #excel #фрейм данных #словарь #для цикла
Вопрос:
У меня есть два словаря по 206 элементов в каждом. Каждая команда представляет собой фрейм данных. Посмотрите на изображения, чтобы получить представление о словарях и элементах в нем.
Я хочу заменить значения емкости на всех листах словаря «напряжение» следующим образом
x = (total number of rows in the sheet )/25
Capacity Value in Row1(index=0) - the sum of the values from Rows 1 to x in
"Current" column of 'copy'
Capacity Value in Row2(index=1) - the sum of the values from Rows x to 2*x in
"Current" column of 'copy'
Capacity Value in Row3(index=2) - the sum of the values from Rows 2*x to 3*x
in "Current" column of 'copy'
.
.
.
Capacity Value in Row25(index=24) - the sum of the values from Rows 24*x to
the last value.
Для выполнения этого я написал код, подобный этому:
for sheet in voltage:
for sheet in copy:
n = ( round((len(copy[sheet]))/25) )
for k in range(0,24):
p = 1 ((k 1)*(n))
if k == 24:
voltage[sheet]['Capacity'].iloc[k] = copy[sheet]['Current'].iloc[((k)*(n)):].sum()
else:
voltage[sheet]['Capacity'].iloc[k] = copy[sheet]['Current'].iloc[((k)*(n) 1):(p)].sum()
он показывает то же сообщение об ошибке.. Пожалуйста, помогите мне с этим.
Сообщение об ошибке: «Одиночный позиционный индексатор выходит за рамки»
Спасибо 🙂
Ответ №1:
Это произошло из-за того, что на листе Excel отсутствовали некоторые данные под именем столбца «Current». Как только я добавил эти данные в таблицу Excel, я работал нормально.