[pandas] 각 열을 고윳값의 순서대로 정렬하기
예제: import pandas as pd data = { '지점': ['양재점', '관악점', '서초점', '관악점', '서초점', '양재점', '서초점', '양재점', '관악점'], '제품': ['콜라', '환타', '환타', '사이다', '콜라', '환타', '사이다', '사이다', '콜라'], '매출': [5000, 3000, 7000, 2000, 9000, 6000, 8000, 4000, 1000] } df = pd.DataFrame(data) df의 지점 열의 고윳값의 순서인 양재점-> 관악점-> 서초점 순서로 정렬하고 지점 안에서 제품을 정렬할 때도 제품 열의 고윳값 순서인 콜라-> 환타-> 사이다 순으로 정렬합니다 # 카테고리 자료형을 활용해 정렬합니다. out = df.sort_value..
2024. 2. 20.
[pandas] 그룹내에서 정렬하기
예제: import numpy as np import pandas as pd data1 = {'지점' : ['관악점', '관악점', '관악점', '양재점', '양재점', '양재점', '서초점', '서초점', '서초점'], '제품' : ['콜라', '사이다', '환타', '사이다', '콜라', '환타', '환타', '사이다', '콜라'], '매출' : np.arange(1, 10) * 1000} df = pd.DataFrame(data1) 지점의 정렬상태는 그대로 두고 제품만 콜라-> 사이다 -> 환타 순으로 정렬해 보겠습니다. Category 데이터를 활용해 정렬 순서를 정할 수 있습니다. # 정렬 순서 정하기 order = df['지점'].unique().tolist() + ['콜라', '사이다', '..
2024. 2. 20.
[pandas] 멀티 인덱스의 각 레벨의 유일 값 찾기
예제. import pandas as pddata1 = {('김판다', '영어'): [50, 20, 35], ('김판다', '국어'): [60, 5, 45], ('강승주', '영어'): [70, 10, 60], ('강승주', '국어'): [100, 30, 50]}df = pd.DataFrame(data1) df: columns의 첫 번째 레벨의 값을 반환해 보자. df.columns.unique(0) Index(['김판다', '강승주'], dtype='object') 김판다, 강승주 두 유일 값을 반환한다. 판다스 책이 출판되었습니다. 교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
2024. 2. 20.
[pandas] 멀티 인덱스에서 두 번째 레벨의 값으로 인덱싱하는 방법
예제: import pandas as pddata1 = {('김판다', '영어'): [50, 20, 35], ('김판다', '국어'): [60, 5, 45], ('강승주', '영어'): [70, 10, 60], ('강승주', '국어'): [100, 30, 50]}df = pd.DataFrame(data1) 국어 점수열만 인덱싱 합니다 1. loc 인덱서 활용 df.loc[:, (slice(None), '국어')] 2. xs 함수 활용 df.xs('국어', level=1, axis=1) 판다스 책이 출판되었습니다. 교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
2024. 2. 20.
[pandas] 멀티 인덱스인 열을 가지고 있을 때 subtotal 열 만들기
예제 : # 예제 생성 import pandas as pd data1 = {('김판다', '영어'): [50, 20, 35], ('김판다', '국어'): [60, 5, 45], ('강승주', '영어'): [70, 10, 60], ('강승주', '국어'): [100, 30, 50]} df = pd.DataFrame(data1) df: 문제 : 멀티 인덱스인 열을 가지고 있을 때 subtotal 열 만들어 봅시다. groupby의 axis=1이 판다스 2.1.0+에서 사라지기 때문에 전치 데이터 프레임 T를 활용해야 합니다. subtotal 행을 만드는 사용자 정의 함수를 생성해 그룹바이 객체에 apply 함수와 함께 적용합니다. 이때 group_keys=False는 필수입니다 # subtotal 행을 생성..
2024. 2. 20.