https://www.kaggle.com/code/residentmario/grouping-and-sorting
Grouping and Sorting
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
www.kaggle.com
위의 글을 참고하여 작성하였습니다.
맵(Map)은 데이터프레임 또는 시리즈의 데이터를 한 번에 하나의 값씩 변환할 수 있게 해 줍니다.
데이터를 그룹화한 후, 그룹 내에서 특정 작업을 수행하고자 할 때 groupby() 연산입니다.
reviews.groupby('points').price.count()
points 열을 기준으로 그룹화한 후, 각 그룹의 개수를 세는 작업입니다.
points가 80인 값이 397개, 21인 값이 692개 등으로 보입니다.
reviews.groupby('points').price.min()
각 점수 카테고리에서 가장 저렴한 와인을 보여줍니다.
points가 80점인 그룹에서는 5.0가 제일 낮은 가격이며, 99점인 그룹에서는 44.0이 제일 낮은 가격입니다.
groupby() 메서드를 사용하여 데이터프레임을 특정 기준으로 처리한 후, apply() 메서드를 사용하여 각 그룹을 개별적으로 처리할 수 있습니다.
# 각 winery별로 그룹화하고, 각 그룹에서 첫 번째 행을 선택합니다.
reviews.groupby('winery').apply(lambda df: df.title.iloc[0])
각 winery에서 처음으로 리뷰된 와인의 이름을 선택하는
winery 1+1=3에서는 1+1=3 MV Rose Sparking이 처음 리뷰되었고, winery 10 knots에서는 10 Knots 2010 Viognier가 처음으로 리뷰되었습니다.
여러 열을 기준으로 그룹화할 수 있습니다.
각 국가와 지역별로 최고 점수를 받은 와인을 선택해 보겠습니다.
reviews.groupby(['country', 'province']).apply(lambda df: df.loc[df.points.idxmax()])
agg() 메서드를 함께 사용하면 데이터프레임의 여러 열에 대해 다양한 집계 함수를 동시에 적용할 수 있습니다.
reviews.groupby(['country']).price.agg([len, min, max])
멀티 인덱스(Multi-index)는 여러 레벨을 가지는 인덱스로, 데이터의 계층적 구조를 더 잘 표현할 수 있습니다.
countries_reviewed = reviews.groupby(['country', 'province']).description.agg([len])
countries_reviewed
국가와 지역을 기준으로 데이터를 그룹화한 후, len() 함수를 적용하여 각 그룹에 대한 통계 요약을 생성합니다.
mi = countries_reviewed.index
type(mi)
멀티 인덱스를 단일 인덱스로 변환하는 작업은 자주 발생합니다.
이때 사용되는 메서드는 reset_index()로 멀티 인덱스를 제거하고, 단일 인덱스를 가지며, country와 province 열이 새로 생성됩니다.
그룹화의 결과는 기본적으로 인덱스 순서에 따라 정렬됩니다.
하지만 원하는 순서로 데이터를 정렬하기 위해 sort_values 메서드를 사용할 수 있습니다.
countries_reviewed = countries_reviewed.reset_index()
# 'len'열을 기준으로 오름차순으로 정렬합니다.
countries_reviewed.sort_values(by='len')
ascending=False를 사용하면 내림차순으로 정렬합니다.
countries_reviewed.sort_values(by='len', ascending=False)
sort_index() 메서드는 인덱스 값을 기준으로 정렬을 수행합니다.
countries_reviewed.sort_index()
한 번에 두 개 이상의 열을 기준으로 정렬을 수행할 수도 있습니다.
countries_reviewed.sort_values(by=['countries', 'len'])
'판다스(Pandas)' 카테고리의 다른 글
(6) 판다스(Pandas)란? - Renaming and Combining [Hellfer] (0) | 2024.07.27 |
---|---|
(5) 판다스(Pandas)란? - Data Types and Missing Values [Hellfer] (0) | 2024.07.26 |
(3) 판다스(Pandas)란? - Summary Functions and Maps [Hellfer] (2) | 2024.07.24 |
(2) 판다스(Pandas)란? - Indexing, Selecting & Assinging [Hellfer] (4) | 2024.07.23 |
(1) 판다스(Pandas)란? - Creating, Reading and Writing [Hellfer] (0) | 2024.07.22 |