Вы можете использовать следующий базовый синтаксис для объединения строк с помощью GroupBy в pandas:
df.groupby(['group_var'], as_index= False ).agg({'string_var ': ' '. join })
Эта конкретная формула группирует строки по столбцу group_var , а затем объединяет строки в столбце string_var .
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: как объединить строки с помощью GroupBy
Предположим, у нас есть следующие Pandas DataFrame:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'store': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'quarter': [1, 1, 2, 2, 1, 1, 2, 2],
'employee': ['Andy', 'Bob', 'Chad', 'Diane',
'Elana', 'Frank', 'George', 'Hank']})
#view DataFrame
print(df)
Мы можем использовать следующий синтаксис, чтобы сгруппировать строки DataFrame по магазинам и кварталам , а затем объединить строки в столбце сотрудников :
#group by store and quarter, then concatenate employee strings
df.groupby(['store', 'quarter'], as_index= False ).agg({'employee ': ' '. join })
store quarter employee
0 A 1 Andy Bob
1 A 2 Chad Diane
2 B 1 Elana Frank
3 B 2 George Hank
Результатом является DataFrame, сгруппированный по магазинам и кварталам со строками в столбце сотрудников , объединенными пробелом.
Мы также могли бы объединить строки, используя другой разделитель, например символ & :
#group by store and quarter, then concatenate employee strings
df.groupby(['store', 'quarter'], as_index= False ).agg({'employee ': ' & '. join })
store quarter employee
0 A 1 Andy & Bob
1 A 2 Chad & Diane
2 B 1 Elana & Frank
3 B 2 George & Hank
Обратите внимание, что строки в столбце сотрудников теперь разделены символом & .
Примечание.Полную документацию по операции GroupBy в pandas можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:
Pandas: как рассчитать совокупную сумму по группе
Pandas: как подсчитать уникальные значения по группам
Pandas: как рассчитать корреляцию по группе