[Python 데이터 분석 3대장] 판다스(Pandas)
판다스(Pandas), 넘파이(Numpy), 맷폴롭립(Matplotlib)
- 데이터 처리 삼대장
1. 판다스 (Pandas)
판다스는 파이썬 데이터 처리를 위한 라이브러리다. 파이썬을 이용한 데이터 분석에서는 필수 라이브러리!
아나콘다를 설치했다면 기본으로 깔려있겠지만, 설치하지 않았다면 아래 커맨드로 Pandas를 설치할 수 있다.
pip install pandas
판다스의 경우, 주로 pd라는 명칭으로 임포트 하는 것이 관례이다.
import pandas as pd
이하 아래에서 수행되는 모든 pandas 코드들은 위의 임포트 코드를 우선 수행했다고 가정한다.
Pandas는 총 세가지의 데이터 구조를 사용한다.
- 시리즈 (Series)
- 데이터프레임 (DataFrame)
- 패널(Panel)
이 중 데이터 프레임이 가장 많이 사용된다. 이 포스팅에는 시리즈와 데이터 프레임에 대해서만 다룰 예정이다!
1. 시리즈 (Series)
시리즈 클래스는 1차원의 배열의 값(values)에 각 값에 대응되는 인덱스(index)를 부여할 수 있는 구조를 가지고 있다.
sr = pd.Series([17000, 18000, 1000, 5000],
index = ['피자', '치킨', '콜라', '맥주'])
print(sr)
피자 17000
치킨 18000
콜라 1000
맥주 5000
dtype: int64
print(sr.values)
[17000 18000 1000 5000]
print(sr.index)
Index(['피자', '치킨', '콜라', '맥주'], dtype='object')
2. 데이터프레임(DataFrame)
데이터프레임은 2차원 리스트를 매개변수로 전달한다. 2차원이므로 행방향 인덱스(index)와 열방향 인덱스(column)가 존재한다. 즉, 행과 열을 가지는 자료구조다. 시리즈가 인덱스(index)와 값(values)으로 구성된다면 데이터프레임은 열(columns)까지 추가되어 열(columns), 인덱스(index), 값(values)으로 구성된다.
예제를 통해 데이터프레임의 구성을 이해해보자.
values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
index = ['one', 'two', 'three']
columns = ['A', 'B', 'C']
df = pd.DataFrame(values, index=index, columns=columns)
print(df)
A B C
one 1 2 3
two 4 5 6
three 7 8 9
생성된 데이터프레임으로부터 인덱스, 값, 열을 각각 출력해보자.
print(df.index)
Index(['one', 'two', 'three'], dtype='object')
print(df.columns)
Index(['A', 'B', 'C'], dtype='object')
print(df.values)
[[1 2 3]
[4 5 6]
[7 8 9]]
(1) 데이터 프레임의 생성
데이터프레임은 리스트(list), 시리즈(Seriex), 딕셔너리(dict), Numpy의 ndarrays, 또 다른 데이터프레임으로 생성할 수 있다. 여기서는 리스트와 딕셔너리를 통해서 데이터프레임을 생성해보자.
#리스트로 생성하기
data = [
['1000', 'Steve', 90.72],
['1001', 'James', 78.09],
['1002', 'Jiyeon', 100.00]
]
df = pd.DataFrame(data)
print(df)
0 1 2
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Jiyeon 100.00
생성된 데이터 프레임에 열(Columns)을 지정해줄 수 있다.
df = pd.DataFrame(data, columns=['학번', '이름', '점수])
print(df)
학번 이름 점수
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Jiyeon 100.00
이번에는 파이썬 자료구조 중 하나인 딕셔너리(dict)를 통해 데이터프레임을 생성해보자.
#딕셔너리로 생성하기
data = { '학번' : ['1000', '1001', '1002'],
'이름' : ['Steve', 'James', 'Jiyeon'],
'점수' : [90.72, 78.09, 100.00]}
df = pd.DataFrame(data)
print(df)
학번 이름 점수
0 1000 Steve 90.72
1 1001 James 78.09
2 1002 Jiyeon 100.00
(2) 데이터프레임 조회하기
아래 명령어는 데이터프레임에서 원하는 구간만 확인하기 위한 명령어로서 유용하게 사용된다.
df.head(n) - 앞 부분을 n개만 보기
df.tail(n) - 뒷 부분을 n개만 보기
df['열이름'] - 해당되는 열을 확인
위에서 사용한 데이터프레임을 그대로 사용한다고 가정하자.
print(df.head(2)) #앞 부분 2개만 보기
학번 이름 점수
0 1000 Steve 90.72
1 1001 James 78.09
print(df.tail(2)) #뒷 부분 2개만 보기
학번 이름 점수
1 1001 James 78.09
2 1002 Jiyeon 100.00
print(df['학번']) #'학번'에 해당되는 열을 보기
0 1000
1 1001
2 1002
Name : 학번, dtype : object
(3) 외부 데이터 읽기
Pandas는 CSV, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터파일을 읽고 데이터프레임을 생성할 수 있다.
예를들어 csv파일을 읽을 때에는 pandas.read_csv()
를 통해 읽을 수 있다.
'머신러닝 꿈나무' 카테고리의 다른 글
[Python 데이터 분석 3대장] Numpy 라이브러리 (0) | 2020.08.04 |
---|---|
데이터의 성능을 높이는 방법 (0) | 2020.08.02 |
하둡 에코시스템(Hadoop-Ecosystem)이란 (0) | 2019.11.10 |
하둡(Hadoop)이란? (0) | 2019.11.10 |
DW(Data Warehouse; 데이터 창고)? Data Lake!! (0) | 2019.11.05 |
댓글
이 글 공유하기
다른 글
-
[Python 데이터 분석 3대장] Numpy 라이브러리
[Python 데이터 분석 3대장] Numpy 라이브러리
2020.08.04 -
데이터의 성능을 높이는 방법
데이터의 성능을 높이는 방법
2020.08.02 -
하둡 에코시스템(Hadoop-Ecosystem)이란
하둡 에코시스템(Hadoop-Ecosystem)이란
2019.11.10 -
하둡(Hadoop)이란?
하둡(Hadoop)이란?
2019.11.10