#python #pandas #selection
#python #pandas #выбор
Вопрос:
У меня есть df, содержащий два столбца:
country amount
USA 34
USA 21
China 5
France 7
Italy 9
USA 1
Spain 10
Ireland 12
Я хотел создать 3 переменные на основе континентов: США, Китай и Европа для дальнейшего расчета со столбцом «сумма».
Для США и Китая мне понравилось это:
usa = df.loc[df['country']=='USA']['country']
china = df.loc[df['country']=='China (Mainland)']['country']
Для Европы я застрял, потому что мне понадобились бы все европейские страны в столбце и поддержание его индекса (то есть соответствующие суммы).
Возможно ли вычесть из [‘country’] США и Китай, чтобы получить остальные (европейские страны) и сохранить их в переменной ‘europe’?
Конечная цель — получить, например, сумму сумм всех европейских стран, и, к сожалению, нет другого «маркера», чтобы отличить их от европейских.
Ответ №1:
Вы можете получить все страны, которые не являются USA
или China
.
Для этого вы можете использовать следующее
europe = df.loc[(df['country']!='China (Mainland)') amp; (df['country']!='USA')]['country']
Ответ №2:
Проверьте с помощью
EU = df.loc[~df['country'].isin(['USA', 'China (Mainland)'])]['country']
Комментарии:
1. что такое ~ in ~ df [‘country’] ? Спасибо
2. @Steven в, чтобы не в ~
Ответ №3:
США и Китай не являются континентами 🙂
df['continent'] = 'Europe'
df['continent'][df['country']=='USA'] = 'USA'
df['continent'][df['country']=='China'] = 'China (Mainland)'