Панды группируют все строки, кроме выбранных

#pandas

#панды

Вопрос:

Я пытаюсь выполнить некоторую группировку выбора и суммировать, но продолжаю получать сообщения об ошибках, очевидно, что все это неправильно. Я хотел бы сгруппировать все строки, кроме нескольких, и суммировать эту основную группу. В принципе, я хотел бы создать круговую диаграмму, показывающую несколько фрагментов и основную группу как «другое». Заранее спасибо.

 d = {'symbol': ['a', 'b', 'c', 'd', 'e', 'f', 'g'], 'value': [5, 5, 5, 5, 1, 1, 1]}
df = pd.DataFrame(data=d)
display(df)
  

Вывод:

     symbol  value
0   a       5
1   b       5
2   c       5
3   d       5
4   e       1
5   f       1
6   g       1
  

Желаемый результат:

     symbol  value
0   rest    20
4   e       1
5   f       1
6   g       1
  

Является ли это несколько правильным подходом?

 def not_in_group(sym):
    if (sym != 'e' or sym != 'f' or sym != 'g' in df['symbol']):
        return sym
    
grouped = df.groupby(not_in_group, axis=1)('value').sum()
display(grouped)
  

Ответ №1:

Вы можете использовать isin и np.where для сопоставления символов:

 mapped_symbols = np.where(df.symbol.isin(main_groups), df.symbol, 'rest')
df['value'].groupby(mapped_symbols).sum()
  

Вывод:

 e        1
f        1
g        1
rest    20
Name: value, dtype: int64