Слишком много индексов для массива | python

#python #dataframe #numpy

#python #фрейм данных #numpy

Вопрос:

Я пытаюсь скопировать массивы в фрейм данных pandas и получаю сообщение об ошибке «слишком много индексов для массива».

 temp =  pd.date_range(date_from, date_to)[:len(pr_daily)]

for index in range(len(a_id)):
    if index == 0:
        finalDataframe['date'] = temp
    finalDataframe[f'pr_{a_id[index]}'] = pr_daily[:, index]
    finalDataframe[f'gloabl_irradiance_tilted_in_kWh_per_m2_{a_id[index]}'] = rad_daily[:, index]
    finalDataframe[f'system_id_{a_id[index]}'] = a_id[index]
 

Ошибка возникает в этих строках:

 finalDataframe[f'pr_{a_id[index]}'] = pr_daily[:, index]
finalDataframe[f'gloabl_irradiance_tilted_in_kWh_per_m2_{a_id[index]}'] = rad_daily[:, index]
 

pr_daily и rad_daily — это массивы numpy одинаковой длины.

Трассировка (последний последний вызов):

Файл «C:Users …Downloadspython_scriptspv.py «, строка 277, в finalDataframe[f’pr_{a_id[index]}’] = (pr_daily[:,index])

Ошибка IndexError: слишком много индексов для массива

Комментарии:

1. опубликуйте полный обратный отчет, который вы получите

Ответ №1:

Эта ошибка возникает, когда вы пытаетесь получить доступ к элементу массива, предоставляя слишком много индексов.

например, вы пытаетесь получить доступ ко второму измерению 1-мерного массива.

Проверьте форму pr_daily и rad_daily действительно ли они являются 2D-массивами.

 a = np.random.rand(5,)
b = np.random.rand(5,5)

print(f'b[:,1] :: {b[:,1]}') --> OK
print(f'{a[:,1]}') --> IndexError: too many indices for array
 

Вы можете получить доступ к форме массива numpy с атрибутом shape