Machine Learning/Pandas

[kaggle courses] Pandas - Creating, Reading and Writing

morijwana 2021. 10. 14. 20:28

0. Pandas 시작하기

천리길도 임포트부터

import pandas as pd

 

1. 데이터 생성하기

Pandas에는 DataFrameSeries라는 핵심 객체들이 있다.

DataFrame

Dataframe은 특정 값을 담고 있는 개별 엔트리들의 배열을 포함한 테이블이다. 각 항목은 1개의 행, 1개의 열과 상응한다. pd.DataFrame() 구조체를 통해 DataFrame을 생성할 수 있다. 열 이름('Yes', 'No')을 key로, 엔트리 리스트를 value로 하는 딕셔너리를 통해 새 DataFrame을 정의할 수 있다.

pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]})

아래의 표는 위와 같은 코드를 입력했을 때의 결과다.

  Yes No
0 50 131
1 21 2

이 예제에서 "0, No" 엔트리의 값은 131이고, "0, Yes" 엔트리는 50의 값을 갖는다. 엔트리는 정수 외의 값도 가질 수 있다.
index를 통해 row에 label을 붙일 수도 있다. 아래는 String 타입의 값과 index를 갖는 DataFrame 예시다.

pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 
              'Sue': ['Pretty good.', 'Bland.']},
             index=['Product A', 'Product B'])
  Bob Sue
Product A I liked it. It was awful.
Product B Pretty good. Bland.

 

Series

Series는 데이터 값의 시퀀스다. DataFrame이 테이블이라면, Series는 리스트다. 본질적으로 Series는 DataFrame의 열 한 개이다. pd.Series() 구조체를 통해 생성 가능하다.

pd.Series([1, 2, 3, 4, 5])
0    1
1    2
2    3
3    4
4    5

Series는 DataFrame과는 다르게 열마다 이름을 갖지 않는 대신, Series 전체를 가리키는 하나의 이름을 갖는다(name). 그리고 DataFrame처럼 index를 통해 row label을 붙여줄 수 있다.

pd.Series([30, 35, 40], index=['2015 Sales', '2016 Sales', '2017 Sales'], name='Product A')
2015 Sales    30
2016 Sales    35
2017 Sales    40
Name: Product A, dtype: int64

 

3. 데이터 읽어오기

pd.read_csv() 함수를 통해 CSV(Comma-Separated Values) 파일을 DataFrame으로 읽어들일 수 있다.

data = pd.read_csv("/data/mosigi.csv")