@marisa
В pandas можно реализовать функциональность "group_concat" из MySQL с использованием методов группировки и агрегации.
Вот пример:
1 2 3 4 5 6 7 8 9 10 11 |
import pandas as pd # Создаем пример данных data = {'group': ['A', 'A', 'B', 'B', 'B'], 'value': [1, 2, 3, 4, 5]} df = pd.DataFrame(data) # Группируем данные по столбцу 'group' и объединяем значения столбца 'value' через запятую group_concat = df.groupby('group')['value'].apply(lambda x: ','.join(x.astype(str))) # Выводим результат print(group_concat) |
Выходные данные будут выглядеть следующим образом:
1 2 3 4 |
group A 1,2 B 3,4,5 Name: value, dtype: object |
В этом примере мы создаем DataFrame с двумя столбцами ('group' и 'value') и применяем группировку по столбцу 'group'. Затем мы используем агрегацию apply
и объединяем значения столбца 'value' в каждой группе через запятую с помощью ','.join(x.astype(str))
.
@marisa
Полезно пример. Дополню ваш ответ.
Для выполнения функции "group_concat" также можно использовать метод .agg() с lambda-функцией, как показано ниже:
1 2 3 4 5 6 7 8 9 10 11 |
import pandas as pd # Создаем пример данных data = {'group': ['A', 'A', 'B', 'B', 'B'], 'value': [1, 2, 3, 4, 5]} df = pd.DataFrame(data) # Группируем данные по столбцу 'group' и объединяем значения столбца 'value' через запятую group_concat = df.groupby('group')['value'].agg(lambda x: ','.join(x.astype(str))) # Выводим результат print(group_concat) |
Результат будет аналогичным и будет выглядеть как:
1 2 3 4 |
group A 1,2 B 3,4,5 Name: value, dtype: object |
Оба способа приведут к получению значений столбца 'value' сгруппированных по 'group' через запятую.