본문 바로가기
# 연구실

판다스 pandas 와 데이터프레임 기초

by lakedaimong 2022. 6. 21.

판다스 pandas는 파이썬에서 데이터 분석을 위해 사용되는 필수 패키지 중 하나입니다. 판다스가 제공하는 2차원 테이블 형태 구조인 "데이터프레임"은 주로 데이터를 읽어서 저장하고 그 데이블의 값을 연산하기 위해서 사용됩니다.

판다스를 이해해 보고 간단한 명령어들에 대해 실습해보기 위해 아래와 같은 코드를 작성해 보겠습니다.

import pandas as pd

table = {'code' : [101, 102, 103, 104, 105, 106, 107, 108, 109],
         '과목' : ['과학', '국어', '영어', '체육', '수학', '사회', '윤리', '과학', '역사'],
         '수강생' : [36, 29, 15, 63, 33, 57, 30, 42, 40],
         '선생님' : ['바나클', '콰지', '페이소', '튜닙', '셀링턴', '핀토', '트윅', '보리스', '대쉬']}

print(pd.DataFrame(table))

그러면 아래와 같이 행과 열을 가진 2차원 형태의 테이블이 출력되는 것을 확인 할 수 있습니다. 실습을 위해 임의로 만든 데이터프레임은 9줄 밖에 되지 않지만 앞으로 다루게 될 실제 데이터는 아주 긴 자료를 다루게 될 예정입니다. 실습으로 '데이터프레임'에서 내가 원하는 자료를 추출하기 위한 몇가지 명령어들을 알아보겠습니다.

   code  과목  수강생  선생님
0   101  과학   36  바나클
1   102  국어   29   콰지
2   103  영어   15  페이소
3   104  체육   63   튜닙
4   105  수학   33  셀링턴
5   106  사회   57   핀토
6   107  윤리   30   트윅
7   108  과학   42  보리스
8   109  역사   40   대쉬

 

상.하위 5개의 행 출력

import pandas as pd

table = {'code' : [101, 102, 103, 104, 105, 106, 107, 108, 109],
         '과목' : ['과학', '국어', '영어', '체육', '수학', '사회', '윤리', '과학', '역사'],
         '수강생' : [36, 29, 15, 63, 33, 57, 30, 42, 40],
         '선생님' : ['바나클', '콰지', '페이소', '튜닙', '셀링턴', '핀토', '트윅', '보리스', '대쉬']}

df_01 = pd.DataFrame(table)
print(df_01.head())
0   101  과학   36  바나클
1   102  국어   29   콰지
2   103  영어   15  페이소
3   104  체육   63   튜닙
4   105  수학   33  셀링턴

.head() 위에서부터 5행 출력

   
print(df_01.tail())
4   105  수학   33  셀링턴
5   106  사회   57   핀토
6   107  윤리   30   트윅
7   108  과학   42  보리스
8   109  역사   40   대쉬

.tail() 아래에서부터 5행 출력

 

print(df_01.sample(3))
2   103  영어   15  페이소
8   109  역사   40   대쉬
6   107  윤리   30   트윅

.sample(숫자) 임의로 숫자(3)만큼의 행을 출력

 

데이터프레임 + 데이터프레임 병합을 실습해 보기 위해 다른 데이터프레임을 하나 더 만들고 두 개의 데이터프레임을 병합하는 .concat 함수를 이용하여 병합해 보겠습니다.

import pandas as pd

table_01 = {'code' : [101, 102, 103, 104, 105, 106, 107, 108, 109],
         '과목' : ['과학', '국어', '영어', '체육', '수학', '사회', '윤리', '과학', '역사'],
         '수강생' : [36, 29, 15, 63, 33, 57, 30, 42, 40],
         '선생님' : ['바나클', '콰지', '페이소', '튜닙', '셀링턴', '핀토', '트윅', '보리스', '대쉬']}

table_02 = {'code' : [110, 111],
            '과목' : ['NFT', '핀테크'],
            '수강생' : [1000, 429],
            '선생님' : ['도로시', '엘리스']}

df_01 = pd.DataFrame(table_01)
df_02 = pd.DataFrame(table_02)
m_df = pd.concat([df_01, df_02])
print(m_df)
0   101   과학    36  바나클
1   102   국어    29   콰지
2   103   영어    15  페이소
3   104   체육    63   튜닙
4   105   수학    33  셀링턴
5   106   사회    57   핀토
6   107   윤리    30   트윅
7   108   과학    42  보리스
8   109   역사    40   대쉬
0   110  NFT  1000  도로시
1   111  핀테크   429  엘리스

Photo by Li Jiangang on Unsplash

반응형

댓글