Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47

Ошибка в цикле

20.05.2020, 21:27. Показов 1816. Ответов 10

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
подскажите пожалуйста. Не могу найти ошибку в цикле. На одном пк все работает, на втором выдает ошибку, а понять не могу. Предположительно на разных пк разные версии питона. Может можно иначе это все записать и тогда заработает? Всем заранее спасибо!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Set seismic data parameters
seismic_step = 1.3
 
# Find L_x0 TVD for each well
TVD_0 = []
for ID in modelling_dataset['well_id']:
    # Test if the data is available for this ID
    row_id = np.argmax(all_data[all_data['well_id'] == ID]['GK'])
     # Save TVD_0
    if np.isnan(row_id):
        TVD_0.append(np.nan)
    else:
        TVD_0.append(all_data.loc[row_id]['TVD'])
modelling_dataset['TVD_0'] = TVD_0
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.05.2020, 21:27
Ответы с готовыми решениями:

Ошибка в цикле While
Написал цикл. При нажатии определенной клавиши происходит выход из цикла и программы. Когда переменная exitWhile - тип int, то цикл...

Ошибка в цикле for
Я сделал программу МЕНЮ, в которой с помощью списка можно запускать любую программу. Но при выборе программы из списка всегда...

Ошибка в цикле
var a:array of integer; b:array of integer; var i,s,k,sum:integer; begin sum:=0; writeln('введите число'); readln(k); for...

10
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.05.2020, 21:30
Цитата Сообщение от Georgiy_Ashkar Посмотреть сообщение
на втором выдает ошибку,
только не говори какую! дай нам погадать, ок?
1
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
20.05.2020, 21:33  [ТС]
Welemir1, Действительно. Прошу прощения.
Выводит : Key Error: -1
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.05.2020, 21:39
Georgiy_Ashkar, продолжим игру, может есть полный текст с указанием строки? может еще можно как то указать эту строку?

а так навскидку -
Цитата Сообщение от Georgiy_Ashkar Посмотреть сообщение
TVD_0.append(all_data.loc[row_id]['TVD'])
вот тут падает?
1
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
20.05.2020, 21:45  [ТС]
Welemir1, полностью все выглядит так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
%%time
# Set folder name where most recent files are stored
folder_name = '../data/preprocessed_data/2020_05_17_14_57_47_010648'
 
# Import all data into a single table
all_data = pd.concat([pd.read_csv(folder_name + '/' + file, sep=';') for file in os.listdir(folder_name)], sort=False)
all_data = all_data[(all_data['TVD'] >= 2400) & (all_data['TVD'] <= 2700)][['filename', 'TVD', 'GK', 'SP', 'NKTD']]
all_data['well_id'] = all_data['filename'].str.replace('well_|.las', '').astype('int')
all_data.drop(columns='filename', inplace=True)
 
# Round up all measures to 0.1m TVD
all_data['TVD'] = round(all_data['TVD'], 1)
all_data = all_data.groupby(['well_id', 'TVD']).mean().reset_index().sort_values(by=['well_id', 'TVD'])
display(all_data)
 
 
 
%%time
# Get data
seismic_data = pd.read_csv('../data/raw_data/data_set_seismic.csv', sep=';')
modelling_dataset = seismic_data[seismic_data['well_id'].isin(list(set(seismic_data['well_id']) & set(all_data['well_id'])))]
display(modelling_dataset)
 
 
# Set seismic data parameters
seismic_step = 1.3
 
# Find L_x0 TVD for each well
TVD_0 = []
for ID in modelling_dataset['well_id']:
    # Test if the data is available for this ID
    row_id = np.argmax(all_data[all_data['well_id'] == ID]['GK'])
     # Save TVD_0
    if np.isnan(row_id):
        TVD_0.append(np.nan)
    else:
        TVD_0.append(all_data.loc[row_id]['TVD'])
modelling_dataset['TVD_0'] = TVD_0

оба предшествующих куска работают исправно. Тот кусок, которые выслал изначально рубится на цикле.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
20.05.2020, 21:49
Цитата Сообщение от Georgiy_Ashkar Посмотреть сообщение
Тот кусок, которые выслал изначально рубится на цикле.
есть полный текст ошибки? Прям вот целиком, не упуская ни пробела?
0
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
21.05.2020, 06:36  [ТС]
Welemir1, да.
KeyError Traceback (most recent call last)
~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2645 try:
-> 2646 return self._engine.get_loc(key)
2647 except KeyError:

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.ge t_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.ge t_item()

KeyError: -1

During handling of the above exception, another exception occurred:

KeyError Traceback (most recent call last)
<ipython-input-7-1b375c8362c2> in <module>
11 TVD_0.append(np.nan)
12 else:
---> 13 TVD_0.append(all_data.loc[row_id]['TVD'])
14 modelling_dataset['TVD_0'] = TVD_0

~\anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key)
1765
1766 maybe_callable = com.apply_if_callable(key, self.obj)
-> 1767 return self._getitem_axis(maybe_callable, axis=axis)
1768
1769 def _is_scalar_access(self, key: Tuple):

~\anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_axis(self, key, axis)
1962 # fall thru to straight lookup
1963 self._validate_key(key, axis)
-> 1964 return self._get_label(key, axis=axis)
1965
1966

~\anaconda3\lib\site-packages\pandas\core\indexing.py in _get_label(self, label, axis)
622 raise IndexingError("no slices here, handle elsewhere")
623
--> 624 return self.obj._xs(label, axis=axis)
625
626 def _get_loc(self, key: int, axis: int):

~\anaconda3\lib\site-packages\pandas\core\generic.py in xs(self, key, axis, level, drop_level)
3535 loc, new_index = self.index.get_loc_level(key, drop_level=drop_level)
3536 else:
-> 3537 loc = self.index.get_loc(key)
3538
3539 if isinstance(loc, np.ndarray):

~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
2646 return self._engine.get_loc(key)
2647 except KeyError:
-> 2648 return self._engine.get_loc(self._maybe_cast_in dexer(key))
2649 indexer = self.get_indexer([key], method=method, tolerance=tolerance)
2650 if indexer.ndim > 1 or indexer.size > 1:

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.ge t_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.ge t_item()

KeyError: -1









Как я понимаю, в цикле он должен добавлять величину, если значения NAN, но вместо этого он пишет -1. У товарища это все работает как есть
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
21.05.2020, 07:00
А зачем тут вообще цикл? Задача какая?
0
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
21.05.2020, 07:17  [ТС]
volkomorov, выяснить, доступны ли данные для конкретных индексов при определенном условии
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
21.05.2020, 09:14
Ошибка скорее всего в том, что Вы пытаетесь засунуть массив

Python
1
modelling_dataset['TVD_0'] = TVD_0
0
0 / 0 / 0
Регистрация: 17.04.2020
Сообщений: 47
21.05.2020, 09:53  [ТС]
volkomorov, Welemir1, спасибо большое вам. Нашел решение

if np.isnan(row_id): заменил на if (np.isnan(row_id) | row_id == -1): и все заработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.05.2020, 09:53
Помогаю со студенческими работами здесь

Ошибка в цикле
class Program { static void Main(string args) { double z; double m; ...

ошибка в цикле for
Не могу понять все время ошибка вылазит, как я только не пытался: Parse error: syntax error, unexpected T_FOR, expecting ';' in...

Ошибка в цикле
Помогите найти баг. Выдает ошибку: File &quot;zadanie1.py&quot;, line 11 else n == 'Да': ^ SyntaxError: invalid syntax Сам...

Ошибка в цикле while
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;locale&gt; #include &lt;stdio.h&gt; ...

Ошибка в цикле while
Делаю работу по численным методам в маткаде,все получается кроме циклов while, как ввожу их все зависает. Я так понимаю, что у меня где-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru