파이썬(Python)&판다스(Pandas)&Polars

[Pandas] groupby, agg 여러 행을 단일 행의 리스트로 넣기

송채채 2023. 4. 28. 14:07

pandas의 explode 함수의 반대 기능을 하는 코드를 소개합니다.

chatGPT의 도움을 받아 작성된 코드입니다.

문자열을 단일 행에 리스트로 합치는 방법은 다음과 같이 groupbyagg를 사용하여 구현할 수 있습니다.

import pandas as pd

# 예시 데이터프레임
df = pd.DataFrame({
    'id': [1, 1, 2, 2],
    'text': ['hello', 'world', 'foo', 'bar']
})

# 문자열을 합쳐서 리스트로 만들기
grouped = df.groupby('id')['text'].apply(list).reset_index(name='text_list')

위 코드에서 groupby를 사용하여 id를 그룹으로 지정하고, agg 함수 대신 apply 함수를 사용하여 text 컬럼의 값을 리스트로 변환하고, reset_index 함수를 사용하여 결과를 데이터프레임 형태로 변환합니다.

결과 데이터프레임은 다음과 같습니다.

   id           text_list
0   1     [hello, world]
1   2         [foo, bar]
반응형