[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.
[pandas] 데이터 프레임을 가로로 정렬하는 방법
example code import pandas as pd data = {'col1': [6, 9, 7, 4, 3, 9], 'col2': [1, 8, 1, 7, 3, 5], 'col3': [6, 4, 2, 3, 1, 9], 'col4': [2, 8, 2, 7, 1, 3]} df = pd.DataFrame(data) 문제 예제의 데이터 프레임 df를 아래와 같은 데이터 프레임이 있을 때 가로로 값을 정렬하고 싶다면 어떻게 해야 할까? (위 그림의 첫째 행을 보면 6, 1, 6, 2의 순서였지만 1, 2, 6, 6이 되었다) 해결 이 경우 pandas 라이브러리로도 가능하지만 numpy를 쓰는 것이 속도면에서 우월하다 numpy 함수 np.sort를 사용하자 import numpy as np np.sort(..
2023. 11. 15.