pandas란 panel datas의 약자이다.
파이썬을 활용한 데이터 분석에서 가장 많이 활용된다.
- Series - 1차원 배열 형태의 데이터 구조이다.
밑에 표를 활용하여 데이터의 형태를 표현해보았다.
- DataFrame - 2차원 배열 형태의 데이터 구조이다.
이것은 n x n의 형태로 밑에 표의 형태와 같다.
<데이터 프레임의 기초>
행과 열로 구분된다.
행을 구분해주는 것은 인덱스 라고 하며, 열을 구분해주는 것은 컬럼 이라고 한다.
인덱스는 별도로 지정해주지 않으면 정수로 지정된다( 또한 한번 설정된 인덱스는 불변하다).
이해를 돕기 위해 사진 아무거나 가져왔다 !
여기서 인덱스는 유동자산, 현금및현금성자산, 단기금융상품, 단기매도가능금융자산, 매출채권 ... 이 해당한다.
컬럼에 해당하는 부분은 제 48기 반기말, 제 47 기말, 제 46 기말 이 해당된다.
예제1)
인덱스를 한번 만들어 볼 것이다.
import pandas as pd
index = pd.date_range('1/1/2000', periods=8)
print(index)
pandas의 method 중 data_range 라는 메서드를 통해서 날짜 형태로 된 8개의 인덱스를 만들어주었다.
실행결과
DatetimeIndex('[2000-01-01', '2000-01-02', '2000-01-03', '2000-01-04', '2000-01-05', '2000-01-06', '2000-01-07','2000-01-08'], dtype='datetme64[ns]', freq='D')
해석)
실행 결과 , 2000-01-01 에서부터 2000-01-08 까지 날짜 형태로 된 8개의 인덱스가 생성된 것을 알 수 있었다!
예제2)
8행 3열의 랜덤 데이터 (numpy 활용) 에 인덱스, 컬럼 이름 설정된 데이터 프레임을 한번 만들어보자.
import numpy as np
df = pd.DataFrame(np.random.rand(8,3), index=index, columns=list('ABC'))
df
해석)
np.random.rand(8 , 3) 의 뜻은 8 x 3의 랜덤데이터를 생성하라는 뜻이다.
이제 각각의 행과 열을 지정해주어야 한다. 따라서 index와 columns를 같이 지정해줘 보자!
여기서 index는 아까 만들어준 2000-01-01 에서부터 2000-01-08 까지의 8개의 인덱스를 그대로 활용한 것이다.
column은 열을 구분해주는 'A', 'B', 'C' 가 각각 생겨난다.
실행결과
A | B | C | |
2000-01-01 | 0.621118 | ||
2000-01-02 | 0.941765 | ||
2000-01-03 | |||
2000-01-04 | |||
2000-01-05 | |||
2000-01-06 | |||
2000-01-07 | |||
2000-01-08 |
랜덤데이터의 표시는 생략하였다...ㅎㅎ
예제3)
특정 열 'B' 에 접근해보기
print(df['B'])
실행결과
2020-01-01 0.690098
2020-01-02 0.690098
2020-01-03 0.690098
2020-01-04 0.690098
2020-01-05 0.690098
2020-01-06 0.690098
2020-01-07 0.690098
2020-01-08 0.690098
Freq: D, Name: B, dtype: float64
인덱스와 B열만 시리즈(Series) 형태로 출력되는 것을 볼 수 있다.
랜덤데이터는 실제로 저렇게 똑같이 출력되지 않을 것이다. 내가 임의로 지정해서 써보았다ㅎㅎ
Freq는 Datetime 이라는 형태, 즉 날짜 를 뜻하고, Name은 B열이 되겠다. float64는 64bit 형태의 실수 라는 뜻이다.
예제4)
여기서부터 살짝 응용된 예제를 보려고 한다.
df2 = df[df['B'] > 0.4]
df2
실행결과
먼저, 안에 있는 df [ 'B' ] > 0.4 의 뜻은 B열 에서의 랜덤 데이터가 0.4 보다 크다면 참이 된다는 뜻이다.
print 해보면
2000-01-01 True
2000-01-02 False
...
이렇게 2000-01-08까지 출력된다.
참인 값들을 가지고 다시 df [ ] 안에 넣어주면 이 참인 값들의 인덱스를 활용하여
새로운 데이터 프레임으로 만들어준다.
만약 B열 중 참인 값에 해당하는 인덱스가 2000-01-01, 2000-01-03, 2000-01-06 이 있다면...
A | B | C | |
2000-01-01 | 0.134564 | 0.695995 | |
2000-01-03 | 0.495996 | ||
2000-01-06 | 0.588224 |
이렇게 생성된다는 뜻이다.
'🐍 Python' 카테고리의 다른 글
csv 파일을 이용해서 데이터 히스토그램 만들기 (0) | 2020.06.10 |
---|