#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