본문 바로가기
[python]데이터 분석/[python]데이터 분석

Pandas(판다스)란?

by 코드몽규 2022. 2. 11.
반응형
  • 판다 스란

Pandas는 쉽고 직관적인 관계형 또는 분류된 데이터로 작업할 수 있도록 설계된 빠르고 유연하며 표현이 풍부한 데이터 구조를 제공하는 Python 패키지이다.

 

적합한 사용용도

  • SQL 테이블 또는 Excel 스프레드 시트에서와 같이 이질적으로 유형이 지정된 열이 있는 데이블 형식 데이터
  • 정렬되고 정렬되지 않은 시계열 데이터
  • 행 및 열 레이블이 포함된 임의의 행렬 데이터 
  • 다른 형태의 관찰 / 통계 데이터 세트


Pandas  import 하기 & 시각화를 위한 matplotlib import 하기

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

[1].데이터 오브젝트 생성하기

  데이터 오브젝트는 ‘데이터를 담고 있는 그릇’이라고 생각하시면 쉬운데요. 여러분이 pandas에서 자주 사용하시게 될 데이터 오브젝트는 Series와 DataFrame 이 있습니다. 이 두 종류의 데이터 오브젝트를 잘 이해하고 사용하는 것이 pandas의 전부라고 해도 과언이 아닐 정도로 중요합니다. 그렇다면 이 두 종류의 ‘그릇’의 차이점은 무엇일까요? 바로 데이터를 담는 그릇의 ‘형태’가 다른데요. 쉽게 말하자면 Series는 1차원 배열로, DataFrame 은 2차원 배열로 데이터를 담고 있다고 생각하시면 됩니다.

1. series 예시

Pandas의 중요한 데이터 오브젝트 중 하나인 Series는 기본적으로 아래와 같이 값의 리스트를 넘겨주어 만들 수 있습니다. 또한 값이 위치하고 있는 정보인 인덱스(index)가 Series에 같이 저장되게 되는데요. 따로 전달해주지 않는 한 기본적으로 0부터 시작하여 1씩 증가하는 정수 인덱스가 사용됨을 알 수 있습니다.

s = pd.Series([1,2,3,4,5,6,7,8,0])
0    1
1    2
2    3
3    4
4    5
5    6
6    7
7    8
8    0
dtype: int64

 

2. DataFrame 예시

앞서 설명드린 것처럼 DataFrame 은 2차원 배열의 형태를 띠고 있습니다. 따라서 우리가 자주 보는 표 형태와 같이 두 가지의 기준에 따라 데이터를 담고 있습니다. 아래의 예제에서는 첫 번째 기준은 날짜, 두 번째 기준은 장소(A, B, C, D라는 네 곳의 위치) 1에 따라 측정된 어떤 값들이 담겨 있다고 생각하면 쉬울 것 같습니다. DataFrame을 만들기 위해서는 pd.DataFrame()라는 클래스 생성자를 사용하며, 행에 해당하는 기준(첫 번째 기준)인 인덱스를 index라는 인수로 전달하며, 열에 해당하는 기준(두 번째 기준)인 칼럼을 columns이라는 인수로 전달합니다. 여기에서는 인덱스로 pd.date_range()를 사용하여 날짜 값들을 만들어 전달해 주었고, 칼럼의 이름은 A, B, C, D라는 이름이 담긴 리스트로 넣어보았습니다.

import numpy as np

dates = pd.date_range('20220211', periods=6)

test_df = pd.DataFrame(np.random.randn(6,4), index = dates, columns=list('1234'))
#pd.DataFrame(6행4열, 행 = dates , 열=list('1234'))
print(test_df)
                  1         2         3         4
2022-02-11  1.956898 -0.122927 -0.931170  0.015135
2022-02-12  0.030996 -0.669072 -0.332000 -0.135516
2022-02-13 -1.498388 -0.052584  0.417320  0.936394
2022-02-14  0.840114 -0.932452 -0.105882 -0.107110
2022-02-15 -1.013161 -0.556173  1.116761 -0.258014
2022-02-16  0.027746  0.258323  0.953349  1.009835

[2]. 데이터 확인하기 

  • 맨 앞의 자료 알아보기 head()
test_df.head(3)
               1	2	3	4
2022-02-11	0.406779	1.065839	-1.186665	-1.983997
2022-02-12	0.812809	-0.122140	-0.853396	0.419013
2022-02-13	-0.121689	-1.129283	-0.113698	-1.522146
  • 마지막의 자료 알아보기 tail()
test_df.tail(2)
               1	2	3	4
2022-02-15	-0.373809	0.263235	0.961776	0.497790
2022-02-16	-0.283699	0.259866	-0.175386	-0.287302
  • DataFrame의 인덱스를 보려면. index 속성 사용
  • 칼럼을 보려면. columns 속성 사용
  • 안에 들어있는 numpy 데이터를 보려면. values 속성 사용

  • . describe() 메서드는 생성했던 DataFrame의 간단한 통계 정보를 보여줍니다. 칼럼 별로 데이터의 개수(count), 데이터의 평균값(mean), 표준 편차(std), 최솟값(min), 4분 위수(25%, 50%, 75%), 그리고 최댓값(max)들의 정보를 알 수 있습니다.

  • . T 속성은 DataFrame에서 index와 column을 바꾼 형태의 DataFrame입니다. pandas.DataFrame.T 에는. T를 ‘Transpose index and columns’와 같이 설명해 놓고 있어서index와 column을 바꾼 후 리턴 값으로 돌려주는 메서드로 착각할 수 있습니다. 따라서. T()로 호출하는 경우가 있으실 텐데, 그렇게 해보니 에러가 나는군요. 메서드가 아니라 미리 계산되어 저장되어 있는 ‘속성’이라는 점을 다시 강조합니다.

  • 그리고. sort_index()라는 메서드로 행과 열 이름을 정렬하여 나타낼 수도 있습니다. 정렬할 대상 축을 결정할 때에는 axis를 이용합니다. axis=0라고 써주면 인덱스를 기준으로 정렬하며(기본값), axis=1라고 써주면 칼럼을 기준으로 정렬합니다. 정렬의 방향에 대한 파라미터는 ascending를 이용합니다. ascending=True는 오름차순 정렬을 하겠다는 것이고(기본값), ascending=False는 내림차순 정렬을 하겠다는 의미입니다. 다음은 칼럼에 대하여 내림차순 정렬을 하는 예제입니다.


[3]. 데이터 선택하기

  • 데이터 프레임 자체가 갖고 있는 [] 슬라이싱 기능을 이용하는 방법입니다. 특정 ‘칼럼’의 값들만 가져오고 싶다면 df ['A']와 같은 형태로 입력합니다. 이는 df.A와 동일합니다. 리턴되는 값은 Series의 자료구조를 갖고 있습니다.

예시)

  • 특정 행을 갖고 오기

  • 인덱스명에 해당하는 값들을 가져옵니다.

2022-02-13 ~ 2022-02-16 인덱스에 해당하는 내용

예시)


 

  • 이름을 이용하여 선택하기 :. loc

-라벨의 이름을 이용하여 선택할 수 있는. loc를 이용할 수도 있습니다.

예시)

 

  • test_df.loc [row(시작):row(끝), '칼럼명']와 같이 행과 칼럼에 조건에 맞는 데이터 선택하기

컬럼 '1','3'에 해당하는 자료 

예시)

 


  • 위치를 이용하여 선택하기:. iloc

예시)

 

  • test_df.iloc [3:5,0:2]

- 인덱스 번호로 행뿐만 아니라 열도 선택할 수 있습니다. 또한 numpy 나 python의 슬라이싱 기능과 비슷하게 사용할 수 있습니다. 아래는 행과 열의 인덱스를 기준으로 이용하여 데이터를 선택하는 예제입니다. 행의 인덱스는 3:5로 네 번째 행과 다섯 번째 행을 선택하며, 열의 인덱스는 0:2로 첫 번째 열과 두 번째 열을 선택합니다.

예시)

 

 

 

자료 출처 

[예시] https://dandyrilla.github.io/2017-08-12/pandas-10 min/

 

판다스(pandas) 기본 사용법 익히기

데이터 분석을 위한 파이썬 라이브러리인 판다스(pandas) 의 기본 사용법을 소개해 놓은 ‘10 Minutes to pandas’ 를 번역해 놓은 글입니다. pandas 의 기본 사용법을 익히시려는 분들에게 실습을 천천히

dandyrilla.github.io

 

반응형

댓글