파이썬을 활용한 데이터 분석 입문

데이터프레임을 이용한 데이터 조작 및 분석(3) - copy, 파생변수 만들기

엔피디 2024. 8. 6. 23:48

지난 시간 데이터를 파악할 때 유용한 명령어와 데이터프레임의 변수명을 수정하는 방법에 대해 알아보았습니다. 이번 시간에는 지난 시간에 남겨드린 점검하기의 답과 데이터프레임에 새로운 변수를 추가하는 방법 데이터를 부분적으로 출력하는 방법에 대해 소개하겠습니다.

실습 준비

# 구글 드라이브 마운트
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)의 과정 중 하나입니다.

다음 포스팅을 통해 데이터 전처리에 대해 자세히 소개하겠습니다.