Ошибка с одним позиционным индексатором выходит за рамки

#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, я работал нормально.