Pandas: як об’єднати рядки за допомогою groupby
Ви можете використовувати наступний базовий синтаксис для об’єднання рядків із GroupBy у pandas:
df. groupby ([' group_var '], as_index= False ). agg ({' string_var ': ' ' .join })
Ця конкретна формула групує рядки за стовпцем group_var , а потім об’єднує рядки в стовпці string_var .
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: як об’єднати рядки за допомогою GroupBy
Припустімо, що у нас є наступні pandas DataFrame:
import pandas as pd
#createDataFrame
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 To 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 To 1 Andy & Bob
1 A 2 Chad & Diane
2 B 1 Elana & Frank
3 B 2 George & Hank
Зверніть увагу, що рядки в стовпці співробітника тепер розділені символом & .
Примітка . Повну документацію щодо операції GroupBy в pandas можна знайти тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Панди: як розрахувати сукупну суму на групу
Pandas: як підрахувати унікальні значення по групах
Pandas: як розрахувати кореляцію за групою