데이터프레임을 이용한 데이터 조작 및 분석(3) - copy, 파생변수 만들기
지난 시간 데이터를 파악할 때 유용한 명령어와 데이터프레임의 변수명을 수정하는 방법에 대해 알아보았습니다. 이번 시간에는 지난 시간에 남겨드린 점검하기의 답과 데이터프레임에 새로운 변수를 추가하는 방법 데이터를 부분적으로 출력하는 방법에 대해 소개하겠습니다.
실습 준비
# 구글 드라이브 마운트
from google.colab import drive
drive.mount('/content/drive')
# 판다스 라이브러리
import pandas as pd
데이터 불러오기
df = pd.read_csv('파일 경로')
df
데이터 복사본 만들기
df_new = df.copy()
df_new
변수명 수정하기
지난 시간에는 rename 메소드를 통해 변수를 수정하는데요, 사실 한 가지 방법이 더 있습니다.
# 데이터프레임 열 이름 전체 출력
df_new.columns
Index(['Rank', 'Country', 'Cost of Living Index', 'Rent Index',
'Cost of Living Plus Rent Index', 'Groceries Index',
'Restaurant Price Index', 'Local Purchasing Power Index'],
dtype='object')
먼저 데이터프레임의 열 이름을 가져옵니다.
df_new.columns = ['순위', '국가명', '생활비 지수', '임대 지수', '생활비와 임대료 지수', '식료품 지수', '레스토랑 지수', '지역 구매력']
df_new
할당 연산자(=)를 통해 리스트 형태의 데이터를 할당합니다. 이때 데이터프레임의 열 갯수와 리스트의 길이와 일치해야 합니다. 일치하지 않을 경우 다음과 같은 에러메세지가 발생합니다.
예시 : 리스트의 길이가 7인 경우
ValueError: Length mismatch: Expected axis has 8 elements, new values have 7 elements
파생변수 추가하기
파생변수(derived variable)
파생변수란, 사용자가 기존 변수를 변형하여 새롭게 만든 변수입니다. 파생변수는 데이터 분석의 효율성을 높이고, 분석 결과의 해석을 보다 명확하게 할 수 있도록 해줍니다.
데이터프레임 만들기
df = pd.DataFrame({'name' : ['철수', '영희', '민지', '제훈'],
'kor' : [80, 85, 90, 100],
'math' : [95, 80, 90, 100],
'eng' : [90, 85, 70, 100],
'sci' : [85, 80, 90, 100]})
df
변수를 조합하여 파생변수 추가하기
합계 변수(total) 추가하기
df['total'] = df['kor'] + df['math'] + df['eng'] + df['sci']
df
평균 변수(mean) 추가하기
df['mean'] = df['total'] / 4
df
데이터를 부분적으로 출력하기
변수를 추가할수록 학생들의 성적을 한눈에 확인하기 어렵습니다. 학생 이름과 평균 점수만 출력하는 방법을 알아보겠습니다.
데이터프레임 형태로 출력하기
시리즈(Series) 출력
# 시리즈 형태로 출력
df['name']
0 철수
1 영희
2 민지
3 제훈
Name: name, dtype: object
다음과 같이 출력할 경우 변수명이 포함되지 않은 시리즈 데이터 형태로 출력됩니다.
데이터프레임(DataFrame) 형태로 출력하기
# 데이터프레임 형태로 출력
df[['name']]
다음과 같이 대괄호를 씌우면 변수명이 포함된 데이터프레임의 형태로 출력할 수 있습니다.
학생 이름, 평균 점수만 포함된 데이터프레임 출력하기
# 데이터프레임 형태로 출력
df[['name', 'mean']]
다음과 같이 안쪽 대괄호에 리스트의 형태로 출력하고 싶은 열의 변수명을 입력하면 원하는 형태의 데이터프레임을 부분적으로 출력할 수 있습니다.
번외
이외에도 데이터프레임을 부분적으로 출력하는 여러 명령어가 있습니다.
pandas documentation — pandas 2.2.2 documentation
판다스 공식 문서를 통해 궁금한 메소드의 사용방법을 확인해볼 수 있습니다.
데이터를 사용자가 원하는대로 부분적으로 출력하는 작업은 데이터 전처리(data preprocessing)의 과정 중 하나입니다.
다음 포스팅을 통해 데이터 전처리에 대해 자세히 소개하겠습니다.