Я пытаюсь очистить свои данные, но он возвращает неправильный столбец - PullRequest
1 голос
/ 08 января 2020

Я пытаюсь взять один из моих импортированных наборов данных df19 и вычистить из него информацию, чтобы создать вторую переменную noneu19, где, как вы уже догадались, страны ЕС удалены из столбца Destination

Вот что я запустил

noneu19=df19
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('UK')]
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('SWEDEN')]
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('SPAIN')]
...
set(noneu19["Destination"])

(... заменяет 25 других строк)

возвращает список данных, проиндексированных в совершенно отдельном столбце 'Location' по какой-то причине.

Если я сделаю set(df19['Destination']), он возвращает список, который я пытаюсь очистить, так что это не проблема в исходном наборе данных. Есть ли способ, которым я могу сделать это проще / чище / лучше или способ выяснить, почему он возвращает неправильный столбец?

Спасибо

1 Ответ

1 голос
/ 08 января 2020

Вы можете создать list со всеми странами в ЕС, такими как

EU = ['SPAIN', 'ITALY'..., 'EU_COUNTRY']

, затем использовать функцию isin следующим образом:

noneu19 = df19.loc[~df19["Destination"].isin(EU)].copy()

Функция isin проверит, содержится ли элемент этого столбца в list, который вы передаете в качестве аргумента.

Подходя к решению проблемы таким образом, вы получите более читаемый и простой в обращении код.

...