[Pandas] Creating, Reading and Writing
Pandas 라이브러리를 사용하기 위해서는 일단, 라이브러리를 Import한다.
앞으로 Pandas 라이브러리를 불러온다면 약어인 pd
를 사용해서 사용한다.
import pandas as pd
Making Data
Pandas에는 두가지 데이터를 저장하는 방식이 있는데 DataFrame
과 Series
이다.
DataFrame
DataFrame은 일종의 표 아니면 엑셀 시트느낌이다.
데이터프레임에는 각각의 특정 값을 갖는 개별 entry 의 배열이 있다.
각 entry는 행(또는 레코드)와 열(column)에 해당한다.
pd.DataFrame({
'Yes': [50, 21],
'No' : [131, 2]
})
Yes | No | |
0 | 50 | 131 |
1 | 21 | 2 |
DataFrame의 entry는 정수 값만 될까?
아니다. entry 값은 문자열 또한 삽입이 가능하다.
pd.DataFrame({
'Bob': ['I liked it.', 'It was awful.'],
'Sue': ['Pretty good.', 'Bland.']
})
BobSue | ||
0 | I liked it. | Pretty good. |
1 | It was awful. | Bland. |
보통은 라벨(Label)들이 0, 1, 2와 같은 숫자로 이루어져 있지만,
이것 또한 프로그래머들이 Index라는 파라미터를 이용해 해당 값을 할당할 수 있다.
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. | Pretty good. |
Product B | It was awful. | Bland. |
Series
DataFrame과는 다르게 Series라는 객체는 데이터 값의 연속이다.
어떻게 보면 Python의 List와 유사한 기능을 한다고 볼 수 있다.
pd.Series = ([1, 2, 3, 4, 5])
0 1
1 2
2 3
3 4
4 5
dtype: int64
원래, Series의 역할은 어떻게 본다면 DataFrame의 단일 Column이다.
따라서, index
파라미터를 사용하여 DataFrame과 동일한 방법으로 Series에 row label을 할당할 수 있다.
그러나 Series에는 열 이름이 없고, 그 자체를 일컫는 하나의 이름만 있다.
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
그래서 Series와 DataFrame은 밀접하게 연관되어있다.
DataFrame은 Series의 집합으로 생각하면 된다.
Reading Data File
kaggle의 여러 대회의 경우나 다른 경우에 직접 데이터셋을 만들지 않고 이미 만들어져있는 데이터로 작업을 한다.
가장 많이 불러오고 대중적으로 쓰이는 파일은 CSV 파일이다.
pd.read_csv()
함수를 이용하면 실제 csv 데이터셋을 DataFrame 형태로 읽을 수 있다.
wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv")
또, shape
속성을 통해 데이터프레임의 크기를 알 수 있다.
wine_reviews.shape
DataFrame의 내용을 검사할 때에는 head()
를 이용해 첫 5개의 행에 대한 값을 표로 가져올 수 있다.
head()
함수 내부에 숫자 값(N)을 넣으면 처음부터 N개의 행을 가져온다는 뜻이다.
wine_reviews.head()

예를 들어, 이 데이터셋에서 CSV 파일에 Pandas가 자동으로 지정하지 않는 내장 index가 있음을 확인할 수 있다.
Pandas가 index에 해당 열을 사용하도록 하려면, 처음부터 새 열을 만드는 대신 index_col
을 지정할 수 있다.