Notice
Recent Posts
Recent Comments
Link
250x250
develope_kkyu
[Python] pandas 예제 - 1 본문
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 |