[pandas] pd.MultiIndex 다루기
pandas를 이용해서 데이터 통계를 내려다 보면 다중 index 및 column이 요구되는 상황이 발생한다. 항상 구글에 찾는게 귀찮아서 쉽게 찾아보기 위해서 글을 남긴다.
가정
학생들이 실습한 문제를 파이썬을 이용해서 채점하기 위한 작업이 주어졌을 때, 다중 인덱스 처리에 대한 문제를 다룬다.
- 전체 문제는 3개
- 각 문제는 시간, 분, 초, 점수, 환산점수로 5가지 항목을 갖는다.
- index는 학번, 분반 순으로 구성된다.
코드
DataFrame을 이용한 multi index 정의
columns = (pd.MultiIndex.from_product([['문제'], [1,2,3], [
'hour',
'min',
'sec',
'ret',
'score']]))
print(columns)
ret = pd.DataFrame(index=[ids, divs], columns=columns)
ret.index.names = ['학번','분반']
ret.loc[201602058, ('문제', 1, 'score')] = 1
ret
multi index에서 데이터 삽입
ret.loc[id, [('문제', problem_number, 'score')]] = score
ret.loc[id, [('문제', problem_number, 'hour')]] = int(hour)
ret.loc[id, [('문제', problem_number, 'min')]] = int(min)
ret.loc[id, [('문제', problem_number, 'sec')]] = int(sec)
결과
학생들이 실습한 문제를 파이썬을 이용해서 채점하기 위한 작업이 주어졌을 때, 다중 인덱스 처리에 대한 문제를 다룬다.
DataFrame을 이용한 multi index 정의
columns = (pd.MultiIndex.from_product([['문제'], [1,2,3], [
'hour',
'min',
'sec',
'ret',
'score']]))
print(columns)
ret = pd.DataFrame(index=[ids, divs], columns=columns)
ret.index.names = ['학번','분반']
ret.loc[201602058, ('문제', 1, 'score')] = 1
ret
multi index에서 데이터 삽입
ret.loc[id, [('문제', problem_number, 'score')]] = score
ret.loc[id, [('문제', problem_number, 'hour')]] = int(hour)
ret.loc[id, [('문제', problem_number, 'min')]] = int(min)
ret.loc[id, [('문제', problem_number, 'sec')]] = int(sec)
결과
Author And Source
이 문제에 관하여([pandas] pd.MultiIndex 다루기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y2k4388/pandas-pd.MultiIndex-다루기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)