[pandas]판다스 자료구조

Philip Sung·2023년 11월 22일
0

[AI·ML·DL]

목록 보기
1/3
post-thumbnail

01 개요

판다스에는 크게 세 가지 자료구조가 존재한다. 1차원 자료구조인 Series, 2차원 자료구조인 DataFrame, 3차원 자료구조인 Panel이 있다. 본 문서에서는 판다스에서 사용하는 자료구조와 그 속성, 메서드 등에 대해서 다룬다.

최종수정일 : 2023.11.22



02 자료구조

02.01 Series

Series는 value와 index의 형태를 지니는 Pandas의 자료 구조이다. 일련의 시퀀스 데이터를 받아들이는데, 별도의 인덱스 레이블을 지정하지 않으면 자동적으로 0부터 시작되는 디폴트 정수 인덱스를 사용한다.

import pandas as pd

dict = {'a':1, 'b':2, 'c':3}
list = [1,3,7]

indexed_series = pd.Series(dict)
unindexed_series = pd.Series(list)

print(indexed_series)
print(unindexed_series)

#result
a  1
b  2
c  3
dtype: int64

0  1
1  3
2  7
dtype: int64

02.02 DataFrame

DataFrame은 시퀀스 데이터를 받아 column과 row로 구성된 2차원 자료구조를 형성한다.

import pandas as pd

df_dictionary = pd.DataFrame({'a': [1,2,3], 'b' : [4,6,8]})
df_list = pd.DataFrame([3,6,9],[4,8,12])

#result
   a  b
0  1  4
1  2  6
2  3  8

   0  1  2
0  3  6  9
1  4  8  12

딕셔너리로 생성할 경우 딕셔너리 키가 column index가 되며, 값은 해당 열의 원소가 된다. 리스트로 생성할 경우 하나의 리스트가 하나의 행이 된다.

02.03 Panel

Panel은 3차원 자료구조이다.




03 연산

03.01 Indexing

03.01.01 Series Indexing

dict = {'a':1, 'b':2, 'c':3}
list = [1,3,7]

indexed_series = pd.Series(dict)
unindexed_series = pd.Series(list)

indexed_series['a']
#result : 1

unindexed_series[3]
#result : 7

Series는 일반 리스트나 딕셔너리처럼 접근할 수 있다.

03.01.02 DataFrame Indexing

df_dictionary = pd.DataFrame({'a': [4,8,12], 'b' : [3,6,9]})

#column indexing
df_dictionary['a']
#result : 
0    4
1    8
2    12

#iloc value indexing
df_dictionary.iloc[1,1]
#result : 6

#iloc range indexing
df_dictionary.iloc[0:2,0:2]
#result :
   a  b
0  4  3
1  8  6

#sequence indexing
boolean_series = pd.Series([True,True,False])
df_dictionary[boolean_series]
#result :
   a  b
0  4  3
1  8  6

column indexing
DataFrame에서 열 인덱스로 인덱싱할 경우 해당 열 전체가 추출된다.

iloc indexing
위치를 지정할 경우 해당 위치의 값이,
범위를 지정할 경우 해당 지점 왼쪽 위까지의 프레임이 포함된다.

sequnce indexing
데이터프레임의 행 수와 같은 크기의 boolean sequence(series, list)를 인덱싱에 사용할 경우, 사용된 시퀀스의 값이 True인 행만을 반환한다.

profile
Philip Sung

0개의 댓글