Итак, пытаемся провести анализ данных о расходах.Импортировали csv, и первоначальная групповая запись была:
group_df = df.groupby('Who', as_index=False).sum()
Я заметил, что некоторые поставщики используют несколько разные имена и хотят объединить их как часть общей группировки.Соответствующий текст не всегда находится в одной и той же позиции в поле «Кто», и по крайней мере в одном случае я обнаружил, что термины «групповой» в «Кто» совсем не похожи («Рэтбоун» и «Йеринг»).Station ').
Who Amount
0 DE BORTOLI WINES DIXONS CREEK -29.54
1 DE BORTOLI WINES RE DIXONS CREEK -20.50
2 DE BORTOLI WINES P/L DIXONS CREEK -22.50
3 DE BORTOLI WINES PTY L BILBUL -91.00
4 Ezard@Levantine Hill Coldstream -31.30
5 Ezard@LevantineHill Coldstream -21.10
6 RATHBONE WINE GROUP PORT MELBOURN -20.20
7 YERING STATION YARRA GLEN -17.05
8 YERING STATION YARRA GREEN -31.00
columns: Index(['Who', 'Amount'], dtype='object')
Вывод, который я хочу:
Who Amount
0 DE BORTOLI WINES DIXONS CREEK -163.54 # all rows containing 'De Bortoli'
1 Ezard@Levantine Hill Coldstream -52.40 # all rows containing 'Ezard@'
2 RATHBONE WINE GROUP PORT MELBOURN -20.20 # all rows containing 'Rathbone' or 'Yering Station'
columns: Index(['Who', 'Amount'], dtype='object')
Я изучал документ pandas, примеры веб-сайтов и обмен стека и просто не могу добраться дорешение, которое не выдает ошибку того или иного рода.
Я хочу иметь возможность указать группу «Кто», если это возможно (что, я думаю, делает этот вопрос немного отличным от других примеров, которые явидел).
Мне также интересно, все ли это должно быть сделано за один или два прохода - то есть за два прохода нужно выполнить первоначальную обобщенную группировку на фрейме данных, а затем объединить варианты на выходе groupby.
Правильно ли я подхожу к этому - будет ли лучше выполнить некоторую консолидацию строк в кадре данных, прежде чем пытаться выполнить группировку?
Спасибо за любую помощь!