Как создать новый столбец во фрейме данных pandas

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Я пытаюсь создать новый столбец с именем «Континент», сгруппировав значения в другом столбце под названием «Регионы». Единственные коды, которые мне удалось сделать, это:

my_data.loc[(my_data ["Region"] == ("Australia and New Zealand")), "Continent"] = "Australia"

Но у меня возникают проблемы, когда для континента существует более одного региона. Я сделал это:

my_data.loc[((my_data ["Region"] == ("Central and Eastern Europe")) amp; (my_data["Region"] == ("Western Europe"))), "Continent"] = "Europe"

my_data.loc[((my_data ["Region"] == ("Eastern Asia")) amp; (my_data["Region"] == ("Southeastern Asia"))), "Continent"] = "Asia" amp; (my_data["Region"] == ("Southern Asia "))), "Continent"] = "Asia"

похоже, что он не распознает код, потому что, когда я выполняю это, в столбце просто появляется «NaN» вместо названия континента.

Кто-нибудь знает, в чем проблема?

Ответ №1:

Вот логическая проблема, никогда не бывает одного условия AND другим, потому что тестируйте один столбец.

Поэтому необходимо | побитовое OR :

 my_data.loc[((my_data ["Region"] ==  ("Central and Eastern Europe")) | (my_data["Region"] == ("Western Europe"))), "Continent"] = "Europe"
 

Что работает так же, как тест с помощью Series.isin :

 my_data.loc[my_data ["Region"].isin(["Central and Eastern Europe", "Western Europe"]), "Continent"] = "Europe"