Странная ошибка при запуске кода Python? - PullRequest
0 голосов
/ 07 апреля 2019

Я запускаю приведенный ниже код, но python выдает странную ошибку, которую он не давал раньше:

 for i in range(len(df)):
    if df['event_name'][i] == 'subcategory_click':
        df.at[i,'subcategory_navigation']=1

Введите:

user_id event_name
10     psuedo_App_start
10     subcategory_click
10     subcategory_click
10     subcategory_click
10     product_search
10     product_search
10     product_search

Желаемый вывод:

user_id event_name  subcategory_navigation
10     psuedo_App_start     0
10     subcategory_click    1
10     subcategory_click    1
10     subcategory_click    1
10     product_search       0
10     product_search       0
10     product_search       0

PFA изображение ошибки: enter image description here

Ответы [ 4 ]

0 голосов
/ 07 апреля 2019

df.reset_index (inplace = True) .. Я использовал это до цикла for, как-то это сработало

0 голосов
/ 07 апреля 2019
df["subcategory_navigation"] = (df["event_name"] == "subcategory_click").astype(int)

должен сделать работу

0 голосов
/ 07 апреля 2019

Попробуйте переключить ['event_name'] и [i] в ​​операторе if

0 голосов
/ 07 апреля 2019

Эта ошибка говорит о том, что df не содержит ключ с именем 'event_name'. Ошибка также может быть связана с тем, что i не существует в df['event_name'], но, похоже, вы ожидаете, что эта коллекция будет списком, а не картой.

Я вижу потенциальную проблему в вашей логике. Вы выполняете итерацию на основе длины df, но затем вы ссылаетесь на другой список в вашем цикле, df['event_name']. Я не понимаю, где должны быть связаны длины этих двух списков. Может быть, вы хотите for i in range(len(df['event_name'])? - из вашего кода длина df не кажется ценной величиной, поскольку это карта, и вы явно ссылаетесь на ключи этой карты.

Трудно понять, что происходит, потому что вы не показываете, что такое df. Я бы посоветовал вам запустить код в отладчике, остановиться на этой строке и посмотреть, что df содержит в этой точке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...