У меня проблемы с кодом, который полезен для создания карты пикселей, особенно в цикле, который группирует данные в выбранной области.Я не могу преодолеть ключевую ошибку.Как я могу справиться с этим?
Я работаю с Python 3.7 и уже пытался установить некоторый контроль над циклом, но цикл не завершается, потому что первый встреченный пиксель кажется пустым.Я также попытался использовать try: и кроме: KeyError, но в конце я получаю строку, которую не могу изменить, потому что, очевидно, цикл просто пропускает пустые субкадры.Здесь я опишу основные шаги кода, сообщая, что 'lin' и 'col' - это целые числа, которые указывают положение определенной меры в определенном пикселе:
1-я попытка:
mean_val=[]
row=[]
for i in range (0,Ypix):
for j in range (0,Xpix):
data_pix = data.groupby(['lin', 'col']).get_group((i,j))[['ref', 'th']]
if KeyError:
data_pix = pd.DataFrame()
else:
mean_level= data_pix['ref'].mean()
row.append(mean_level)
mean_val = np.array(row).reshape(Ypix, Xpix)
2-я попытка:
mean_val=[]
row = []
for i in range (0,Ypix):
for j in range (0,Xpix):
try:
data_pix=data.groupby(['lin', 'col']).get_group((i,j))[['ref', 'th']]
except KeyError:
data_pix = pd.DataFrame()
else:
mean_level= data_pix['ref'].mean()
row.append(mean_level)
mean_val = np.array(row).reshape(Ypix, Xpix)
Я ожидал, что в конце строки будет изменена форма, чтобы получить карту, и я ожидал получить хотя бы пустой пиксель, где нет данных, чтобыизменить правильно.Отображаются следующие ошибки:
1-я попытка:
Traceback (most recent call last):
File "grid.py", line 385, in <module>
proc.process()
File "grid.py", line 106, in process
data_pix = data.groupby(['lin', 'col']).get_group((i,j))[['ref', 'th']]
File "C:\xxx\yyy\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\groupby\groupby.py", line 680, in get_group
raise KeyError(name)
KeyError: (0, 0)
2-я проверка:
Traceback (most recent call last):
File "grid.py", line 379, in <module>
proc.process()
File "grid.py", line 276, in process
mean_val = np.array(row).reshape(Ypix, Xpix)
ValueError: cannot reshape array of size 1506 into shape (50,50)
Кто-нибудь может мне помочь, пожалуйста?