상세 컨텐츠

본문 제목

[pandas tutorial #1] pandas는 어떤 종류의 데이터를 처리할까요?

머신러닝 딥러닝/PANDAS

by 힐둔 2021. 8. 11. 22:59

본문

Pandas 공식 홈페이지에 있는 Tutorial 내용을 소개 합니다. 10개 정도 topic으로 소개하고 있네요.

자~ 시작 합니다. 가볍게 본다는 기분으로 훑어보면 좋을 것 같습니다. 

 


Pandas를 사용하기 위해서는 먼저 아래와 같이 pandas package를 import 합니다. 그리고 보통 pd로 설정됩니다.  (많이 본건 아니지만 생각해보니 pd 이외에 다른 명칭으로 사용하는 곳은 못 본것 같습니다.)

 

import pandas as pd

 


pandas data table

Titanic의 승객 정보를 저장하는 경우를 생각해 봅시다. 일련의 승객들의 이름과 나이 그리고 성별 데이터가 있습니다. 데이터들을 테이블에 저장하기 위해서는 DataFrame을 생성해야 합니다. 가장 먼저 떠오르는 - 그리고 가장 유사한 - Python의 Dictionary를 이용해서 생성하기로 합니다. 우리가 배웠던 Dictionary의 key는 column header들로 사용되고, value들은 DataFrame의 Column들의 내용이 됩니다. 자 아래를 보시죠.

 

df = pd.DataFrame(
    {
        "Name": [
             "Braund, Mr. Owen Harris",
             "Allen, Mr. William Henry",
             "Bonnell, Miss. Elizabeth",
             ],
        "Age": [22, 35, 58],
            "Sex": ["male", "male", "female"],
     }
)
df

 

DataFrame은 서로 다른 데이터타입 (문자열, 정수, 부동소수점, 범주형 데이터 등등) 들을 저장할 수 있는 2차원 구조를 가집니다. 엑셀의 스프레드시트, SQL 테이블 그리고 R에서의 data.frame과 유사하죠. 위의 테이블을 보면 3개의 column들이 있고 각각 'Name', 'Age' 그리고 'Sex' 같은 label이 가집니다. 'Name' column 은 문자열인 텍스트 데이터로 구성되며 'Age' column은 숫자, 그리고 'Sex' column은 역시 텍스트 데이터입니다. 아래는 스프레드 시트 입니다. 비슷하죠?

 


DataFrame의 각 Column은 Series 객체 입니다.

Age column을 보시죠.

df["Age"]

 

pandas DataFrame의 한 column은 pandas의 Series객체로 구성이 됩니다. (1차원 배열 (index는 무시하기로 한다면)인 Series가 모여서 2차원 배열인 DataFrame이 된다고 생각하면 쉬울 듯 합니다.) column을 선택하기 위해서는 [ ] 사이에 column label을 " " 나 ' ' 안에 label을 넣어 줍니다.  Python의 dictionary 사용법과 유사합니다.  type(df["Age"])로 확인해보면 Serices 객체라고 표시됩니다. Python에서 type을 이용하여 자료형을 확인할 수 있습니다. 꼭 데이터 타입을 확인하는 습관을 기르면 좋겠습니다.

 

 

아래와 같이 Series 객체를 생성할 수도 있습니다.

ages = pd.Series([22, 35, 58], name="Age")
ages

위에서 보듯이 panda의 Series는 column label이 없고, index라 불리는 row label은 있습니다.

 


DataFrame이나 Series로 무엇을 할 수 있을까요?

가장 나이가 많은 승객은 ? 아래와 같이 Age colume을 선택하고, max() 함수를 이용해서 구할 수 있습니다. 두 경우 모두 Series 객체의 max()를 사용하고 있습니다. 이 외에도 여러가지 수학 함수를 제공 하고 있습니다.

df["Age"].max()
ages.max()

 

describe()를 사용하면 DataFrame의 기본 통계를 확인 할 수 있습니다. Name이나 Sex column들은 정수형 데이터가 아니므로 통계를 제공하지 않습니다.

df.describe()

 

원본출처 : https://pandas.pydata.org/pandas-docs/stable/getting_started/intro_tutorials/index.html

관련글 더보기

댓글 영역