티스토리 뷰
반응형
Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.
Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.
아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

How to group dataframe rows into list in pandas groupby
판다스(Pandas) groupby로 데이터프레임 행(row)들을 리스트로 그룹화하는 방법
문제 내용
I have a pandas data frame df like:
저는 pandas 데이터프레임 df가 다음과 같다고 가정합니다:
a b
A 1
A 2
B 5
B 5
B 4
C 6
I want to group by the first column and get second column as lists in rows:
첫 번째 열로 그룹화하고 행의 목록으로 두 번째 열을 가져오고 싶습니다:
A [1,2]
B [5,5,4]
C [6]
Is it possible to do something like this using pandas groupby?
pandas그룹바이를 이용해서 이런 일을 할 수 있을까요?
높은 점수를 받은 Solution
You can do this using groupby to group on the column of interest and then apply list to every group:
당신은 관심 있는 열에서 그룹화하기 위해 groupby를 사용하고, 그룹마다 list를 적용하여 이를 수행할 수 있습니다.
In [1]: df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
df
Out[1]:
a b
0 A 1
1 A 2
2 B 5
3 B 5
4 B 4
5 C 6
In [2]: df.groupby('a')['b'].apply(list)
Out[2]:
a
A [1, 2]
B [5, 5, 4]
C [6]
Name: b, dtype: object
In [3]: df1 = df.groupby('a')['b'].apply(list).reset_index(name='new')
df1
Out[3]:
a new
0 A [1, 2]
1 B [5, 5, 4]
2 C [6]
가장 최근 달린 Solution
Just a suplement. pandas.pivot_table is much more universal and seems more convenient:
보충 설명을 드리자면, pandas의 pivot_table 함수를 사용하면 더 유연하고 편리하게 데이터를 변환할 수 있습니다.
"""data"""
df = pd.DataFrame( {'a':['A','A','B','B','B','C'],
'b':[1,2,5,5,4,6],
'c':[1,2,1,1,1,6]})
print(df)
a b c
0 A 1 1
1 A 2 2
2 B 5 1
3 B 5 1
4 B 4 1
5 C 6 6
"""pivot_table"""
pt = pd.pivot_table(df,
values=['b', 'c'],
index='a',
aggfunc={'b': list,
'c': set})
print(pt)
b c
a
A [1, 2] {1, 2}
B [5, 5, 4] {1}
C [6] {6}
출처 : https://stackoverflow.com/questions/22219004/how-to-group-dataframe-rows-into-list-in-pandas-groupby
반응형
'개발 > 파이썬' 카테고리의 다른 글
| Python의 딕셔너리를 kwargs로 변환하기 (0) | 2023.01.26 |
|---|---|
| 딕셔너리를 함수의 키워드 매개변수로 전달하기 (0) | 2023.01.25 |
| 판다스에서 하나를 제외한 모든 열 선택하기 (0) | 2023.01.25 |
| 문자열을 문자 리스트로 분할하기 (0) | 2023.01.24 |
| 리스트 내포에서 if else 구문 사용하기 (0) | 2023.01.24 |
댓글
공지사항
최근에 올라온 글