pandas(판다스)란 R을 모티브로하여 만든 파이썬 라이브러리이다.
파이썬에서 데이터 처리를 위해 만든 라이브러리로 파이썬으로 데이터 처리를 하려면 필요한 라이브러리이다!
판다스의 경우 주로 pd라는 명칭으로 임포트 하는 것이 관례이다.
import pandas as pd
판다스는 총 세가지의 데이터 구조를 사용한다.
이 중 데이터 프레임이 가장 많이 사용된다고하는데, 이 포스트에서는 시리즈와 데이터프레임만 다루었다.
데이터분석을 위해 수집, 전처리 등의 과정은 대부분 데이터프레임의 형태로 이루어지는 경우가 많다. 여기서 말하는 dataframe(데이터프레임)은 흔히 많이 들어본 행과 열로 이루어진 표를 의미한다.
dataframe은 series(시리즈)가 여러 개 합쳐진 자료형이고,series는 데이터프레임의 하위 자료형이다. 1개의 열이 시리즈이고 이 시리즈가 다수 모여 데이터프레임을 형성한다라고 이해하면 쉬울 것 같다.
지금 공부할 때는 데이터프레임을 더 많이 쓰긴하지만 판다스 사전에서 시리즈도 나오고 어떤 모듈들은 시리즈 단위로 사용되는 것 같아서 이것을 먼저 알아봐야할 것 같았다.
데이터프레임은 여러 개의 시리즈로 구성된 자료형인 것 같다.
즉 데이터프레임에서 하나의 열만 가져온다면, 그건 시리즈가 된다.
Pandas DataFrame is two-dimensional size-mutable, potentially heterogeneous tabular data structure with labeled axes (rows and columns).
1차원 배열 형태의 데이터 구조를 Series
2차원 배열 형태의 데이터 구조를 DataFrame
Series는 행(가로줄, row)이다.
DataFrame은 행렬이다.
행을 구분하는 행 제목을 index
열을 구분하는 열 제목을 column
series는 열이 없는 것이 아니라 열 1개에 n개의 행을 가지고 있는 것이다.
index: 각 Row에 대한 Label같은 것. 행이름같은 것.
header: 각 column에 대한 Label같은 것. 열이름같은 것.
row: 행(가로줄)
column: 열(세로줄)
용어가 정리가 안되니까 헷갈려서 이렇게 정리해서 외워야할 것 같다.
문제를 풀다가 둘이 다른 것 같아서 찾아봤는데 pandas나 python와는 다른 언어에서 나온 개념같다.
Conceptually, consider DataFrame as an alias for a collection of generic objects Dataset[Row], where a Row is a generic untyped JVM object. ... Dataset, by contrast, is a collection of strongly-typed JVM objects, dictated by a case class you define in Scala or a class in Java.
판다스에서는 데이터셋과 데이터프레임의 차이가 커보이지 않는다...적어도 지금 작성하는 이 순간에는!
Spark 에서 사용하는 Data Structure의 종류로 RDD, dataframe, dataset이 있는데 이것은 아직 내가 알아봐도 이해를 못할 것 같아서 패스.
참고