Вычитание строк из столбцов и сохранение исходного индекса в Pandas

#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)'