Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
df.reset_index (inplace = True) .. Я использовал это перед циклом for, как-то это сработало
Кажется, эта ошибка говорит о том, что df
не содержит ключ с именем 'event_name'
. Ошибка также может быть связана с тем, что i
не существует в df['event_name']
, но, похоже, вы ожидаете, что эта коллекция будет списком, а не картой.
Я вижу потенциальную проблему в вашей логике. Вы выполняете итерацию, основываясь на длине df
, но затем вы ссылаетесь на другой список в вашем цикле, df['event_name']
. Я не понимаю, где должны быть связаны длины этих двух списков. Может быть, вы хотите for i in range(len(df['event_name'])
? - из вашего кода длина df
не кажется ценной величиной, поскольку это карта, и вы явно ссылаетесь на ключи этой карты.
Трудно понять, что происходит, потому что вы не показываете, что такое df
. Я бы посоветовал вам запустить код в отладчике, остановиться на этой строке и посмотреть, что df содержит в этой точке.
df["subcategory_navigation"] = (df["event_name"] == "subcategory_click").astype(int)
должен делать работу
Попробуйте переключить ['event_name'] и [i] в операторе if