develope_kkyu

[Python] pandas 예제 - 1 본문

Python

[Python] pandas 예제 - 1

developekkyu37 2022. 12. 30. 12:37
728x90

https://pandas.pydata.org/docs/user_guide/10min.html에 나와 있는 pandas 예제 코드를 살펴본다.

import pandas as pd
import numpy as np

객체 생성

  • Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])

s

Out: 
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64
  • DataFrame
dates = pd.date_range("20130101", periods=6) # 20130101 ~ 20130106의 범위

dates

Out: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')
              

df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD"))
# A, B, C, D를 칼럼으로 하고 dates를 인덱스로하는 테이블 생성
# 값은 난수

df

Out: 
                   A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

데이터 살펴 보기

  • head(self, n=5)와 tail(self, n=5)

head()는 DataFrame 내의 처음 n줄의 데이터를 출력한다. n의 기본값은 5이며, 아무 입력이 없을 경우 처음 5줄을 기본으로 출력한다.

df.head()
Out: 
                   A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401

tail()은 DataFrame 내의 마지막 n줄의 데이터를 출력한다. 마찬가지로 n의 기본값은 5이며, 아무 입력이 없을 경우 마지막 5줄을 기본으로 출력한다.

df.tail(3) # 마지막 3줄 입력
Out: 
                   A         B         C         D
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988
  • index와 columns

index는 DataFrame의 index값을 출력하고 columns는 DataFrame의 칼럼을 출력한다.

df.index
Out: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

df.columns
Out: Index(['A', 'B', 'C', 'D'], dtype='object')
  • to_numpy

DataFrame을 ndarry라는 다차원 행렬 자료구조로 변환한다.

df.to_numpy()
Out: 
array([[ 0.4691, -0.2829, -1.5091, -1.1356],
       [ 1.2121, -0.1732,  0.1192, -1.0442],
       [-0.8618, -2.1046, -0.4949,  1.0718],
       [ 0.7216, -0.7068, -1.0396,  0.2719],
       [-0.425 ,  0.567 ,  0.2762, -1.0874],
       [-0.6737,  0.1136, -1.4784,  0.525 ]])
  • describe()

DataFrame의 데이터를 요약한다. 즉, 기초 통계량( 평균, 표준편차, 최소값, 최대값, 사분위수 등)을 출력한다.

df.describe()
Out: 
              A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean   0.073711 -0.431125 -0.687758 -0.233103
std    0.843157  0.922818  0.779887  0.973118
min   -0.861849 -2.104569 -1.509059 -1.135632
25%   -0.611510 -0.600794 -1.368714 -1.076610
50%    0.022070 -0.228039 -0.767252 -0.386188
75%    0.658444  0.041933 -0.034326  0.461706
max    1.212112  0.567020  0.276232  1.071804
  • T

DataFrame의 행과 열의 위치를 바꾼다.

df.T
Out: 
   2013-01-01  2013-01-02  2013-01-03  2013-01-04  2013-01-05  2013-01-06
A    0.469112    1.212112   -0.861849    0.721555   -0.424972   -0.673690
B   -0.282863   -0.173215   -2.104569   -0.706771    0.567020    0.113648
C   -1.509059    0.119209   -0.494929   -1.039575    0.276232   -1.478427
D   -1.135632   -1.044236    1.071804    0.271860   -1.087401    0.524988
  • sort_index()와 sort_values()

sort_index()는 index를 기준으로 데이터를 정렬한다.

df.sort_index(axis=1, ascending=False) # axis > 열, ascending=False > 내림차순 기본값 : True
Out: 
                   D         C         B         A
2013-01-01 -1.135632 -1.509059 -0.282863  0.469112
2013-01-02 -1.044236  0.119209 -0.173215  1.212112
2013-01-03  1.071804 -0.494929 -2.104569 -0.861849
2013-01-04  0.271860 -1.039575 -0.706771  0.721555
2013-01-05 -1.087401  0.276232  0.567020 -0.424972
2013-01-06  0.524988 -1.478427  0.113648 -0.673690

sort_values()는 칼럼의 값을 기준으로 데이터를 정렬한다.

df.sort_values(by="B") # "B" 칼럼 기준
Out: 
                   A         B         C         D
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-06 -0.673690  0.113648 -1.478427  0.524988
2013-01-05 -0.424972  0.567020  0.276232 -1.087401

 

728x90

'Python' 카테고리의 다른 글

[Python] pandas 예제 - 3  (0) 2023.01.05
[Python] pandas 예제 - 2  (0) 2023.01.04
[Python] 튜플(tuple)과 리스트(list) 비교  (0) 2022.12.26
[Python] str 메서드  (0) 2022.12.26
[Python] List  (0) 2022.12.26