(BigData Analysis 도전기) Kaggle Pandas Tutorial (1. Creating, Reading and Writing)
by 줌코딩
빅데이터 분석
- 빅데이터 분석이 뭐지 하고 그냥 궁금증만 가지고 있었는데 이번 네이버 핵데이 주제에도 관련성이 있을 수 있겠다는 생각이 들어서 공부해보게 되었다.
- 관련 강의로 홍참길 교수님이 추천해주신 캐글 강의를 통해 pandas를 이해하고 최종적으로 지리 데이터 분석인 geospatial Analysis까지 진행해보려 한다.
- 캐글 강의를 따라가는 내용이 담겼으니 자세한 내용은 캐글 강의 링크를 따라가도 좋을 것 같다.
- 캐글 pandas 강의 링크
- 그럼 지금부터 pandas 1강 Creating, Reading, Writing을 따라가보자!
Introduction
- Pandas는 Python으로 데이터를 분석하기 위한 Library이다.
Creating Data
- Pandas에는 2가지 핵심 object으로 DataFrame과 Series가 있다.
DataFrame
- DataFrame이란 2차원 어레이로 value를 가지고 있는 entries들이 있고 각각의 entry는 이에 해당하는 row와 column 값을 가지고 있다.
- 예를 들어, 다음과 같은 데이터 프레임이 생성된 경우에는
import pandas as pd
pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]})
- 아래 그림과 같은 어레이가 생성된다.
Yes | No | |
---|---|---|
0 | 50 | 131 |
1 | 21 | 2 |
- 위의 표에서 보듯이 “0, No”에 해당하는 entry 값은 131이다.
- 여기서 entries의 값은 integer에 국한되지 않는다.
pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'], 'Sue': ['Pretty good.', 'Bland.']})
- DataFrame은
pd.DataFrame()
이라는 생성자를 이용해서 만들어지게 된다.- 이 때 내부의 내용들은 Dictionary의 형태로 지정되는데 이때 key는 column값이 되고 각각의 값은 list로 주어지게 된다.
- 이때 row는 자연스럽게 0,1,2,3,… 이런식으로 주어지게 되는데 이때 row의 label도 우리가 지정해줄 수 있다.
- row의 label을 DataFrame의 index라고 한다.
- 이 같은 constructor의 parameter로 지정해줄 수 있다.
Bob | Sue | |
---|---|---|
ProductA | I liked it. | Pretty good. |
ProductB | It was awful | Bland. |
- 위와 같은 표를 생성해주고 싶으면 아래와 같이 index 값을 지정해주면 된다.
pd.DataFrame({'Bob': ['I liked it.', 'It was awful.'],
'Sue': ['Pretty good.', 'Bland.']},
index=['Product A', 'Product B'])
Series
- Series는 그냥 data 값들의 열을 의미한다.
- DataFrame이 table이라면 이건 그냥 list와 같다.
- Series는 column이 하나인 data frame과 같다.
- 그래서 data frame과 같이 Column값을 변경해줄 수 있는데 이때도 동일하게 index을 이용하면 된다.
- 만일 아래와 같은 데이터를 얻고 싶다면
Flour 4 cups
Milk 1 cup
Eggs 2 large
Spam 1 can
Name: Dinner, dtype: object
- 다음과 같이 코드를 짜주면 된다.
ingredients = pd.Series(
['4 cups', '1 cup', '2 large', '1 can'],
index=['Flour', 'Milk', 'Eggs', 'Spam'],
name='Dinner', dtype= 'object'
)
- Series를 여러개 붙여놓으면 DataFrame이라고 보면 된다.
Reading data files
- 이번에는 데이터를 생성하는 것 대신 존재하는 데이터를 읽어보자.
- 데이터는 다양한 포맷을 가지고 있을 수 있는데 그중에 가장 humble한 CSV 파일을 읽어보자.
- CSV 파일을 읽으면 다음과 같은 내용이 보이게 된다.
Product A,Product B,Product C,
30,21,9,
35,34,1,
41,11,11
- 모든 데이터는 , 로 구분되어 있어서 이를 Comma-Separated Values, CSV라 칭하게 됐다.
- CSV 파일을 읽기 위해서는
pd.read_csv()
함수를 사용하면 된다.
wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv")
- 위와 같이 파일을 읽어오게 되면
shape
을 통해 데이터의 형태를 확인할 수 있다.
wine_reviews.shape
(129971, 14)
- 이것은 130000에 가까운 record(row)에 14개의 column가 있는 데이터 형태를 가지고 있다는 의미이다. 8 이때
head()
함수를 이용하면 첫 5개의 row를 찾아서 보여준다.
wine_reviews.head()
pd.read_csv()
함수는 다양한 파라미터를 직접 입력할 수 있게 해준다.- 예를 들어, pandas가 index column을 생성해주는 게 아니라 하나의 column을 index column으로 사용하고 싶다면 아래와 같이
index_col
을 명시해줄 수 있다.
wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
wine_reviews.head()
Write data files
- 이제 여기서 만들어진 dataframe을 다시 csv 파일로 저장하기 위해서는
to_csv()
함수를 사용하면 된다.- 다음과 같은 내용이 저장되어있는 DataFrame animals를 csv로 저장하려면
animals = pd.DataFrame({'Cows': [12, 20], 'Goats': [22, 19]}, index=['Year 1', 'Year 2'])
- dataframe의 내장함수인 to_csv함수를 사용하면 된다.
animals.to_csv("cows_and_goats.csv")
- 이상으로 첫 강의 따라가기를 마치겠다!
- Exercise를 통해 배운 내용을 연습해보자!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS