[Pandas] Creating, Reading and Writing

Pandas의 Series, DataFrame을 알아보자
kagglePandas
avatar
2025.04.07
·
6 min read

Pandas 라이브러리를 사용하기 위해서는 일단, 라이브러리를 Import한다.

앞으로 Pandas 라이브러리를 불러온다면 약어인 pd를 사용해서 사용한다.

import pandas as pd

Making Data

Pandas에는 두가지 데이터를 저장하는 방식이 있는데 DataFrameSeries이다.

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()
4629

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







- 컬렉션 아티클