이번 포스팅에서는 데이터 분석을 위해 kaggle 사이트에서 진행했던 실습에 대한 내용을 정리해보려고 합니다.
Pandas에 대해서 먼저 다뤄볼게요. 혹시라도 따라하고 싶으실 분들을 위해 링크 남겨드리겠습니다.
https://www.kaggle.com/learn/pandas
Learn Pandas Tutorials
Solve short hands-on challenges to perfect your data manipulation skills.
www.kaggle.com
일단 kaggle 사이트에서 볼 수 있는 pandas 레슨에는 총 6개가 있습니다. 그 중에서도 오늘 다뤄볼 파트는 제일 첫번째 파트인 Creating, Reading and Writing 입니다. 해당 파트의 튜토리얼 진행을 위해서 아래 사진에 표시된 곳을 클릭합니다.
저는 이미 튜토리얼과 연습 문제를 풀었기 때문에 체크 표시가 되어있는 것이고 아마도 처음 pandas 레슨을 들어오신 분들은 아래 같은 모양의 아이콘들이 있을 겁니다.
이 중에서 왼쪽 아이콘을 클릭하면 아래와 같은 창이 나타나게 됩니다.
여기서도 저기 표시된 곳을 클릭하면 아래와 같이 나오게 됩니다.
여기서 Copy & edit notebook을 선택하면 이제 pandas 튜토리얼에서 코드를 작성할 준비가 끝났습니다!
이제 우리가 가장 먼저 실행해야할 코드는 아래 코드입니다. 이 코드는 pandas 모듈을 import 하겠다는 코드이고 as pd는 pandas 모듈의 이름을 pd로 간략화하겠다는 뜻입니다. 즉, pandas 이름을 줄이기 싫다면 'import pandas' 까지만 작성해줘도 된다는 뜻이죠. 대신 귀찮음을 다소 감내해야함을 명심하십시오.
import pandas as pd
다음으로 작성할 코드는 아래 코드입니다.
pd.DataFrame({'Yes': [50, 21], 'No': [131, 2]})
pandas 모듈을 import 했으니 이제는 데이터 프레임을 만들어 봐야겠죠? 그래서 위의 코드를 통해 pandas 모듈을 활용한 데이터 프레임을 만들어 준 것입니다. 여기까지 따라오면서 코드를 실행해보셨다면 출력은 kaggle 창에서 확인하실 수 있을 겁니다. 이 형태가 가장 기본적으로 pandas 모듈을 활용해 데이터프레임을 생성하는 코드입니다. 데이터 프레임의 값으로는 문자열을 사용할수도 있습니다. 문자열을 사용해도 같은 형태의 데이터 프레임이 생성되는 것을 확인할 수 있을 것입니다.
여기까지의 출력값을 보면 index 값이 자동으로 0과 1로 출력되는 것을 볼 수 있습니다. 하지만 우리가 실제로 사용할 데이터에서 인덱스 값을 0, 1 등의 숫자로 표현하기 보다는 특정 문자열로 표현하는 경우가 더 많을 것입니다. 이때 사용하는 것이 바로 index 입니다. 아래의 예시 코드를 통해 index 값을 설정하는 것을 보여드리겠습니다.
pd.DataFrame({'Kyunghee': ['I liked it.', 'It was awful.'],
'Minsu': ['Pretty good.', 'Bland.']},
index=['Product A', 'Product B'])
기존에 작성했던 데이터 프레임 코드에 index = ['Product A', 'Product B']만 추가 되었습니다. 코드를 실행시켜보면 이제 index 값이 0, 1 이 아닌 Product A, Product B 로 바뀐 것을 알 수 있습니다.
다음으로 해볼 것은 pandas 모듈을 활용한 series 형식 생성하기 입니다. 코드는 아래와 같습니다.
pd.Series([1, 2, 3, 4, 5])
이제 출력해보면 series 형식의 데이터가 출력되는 것을 볼 수 있습니다. 여기에 series 형식의 데이터에 index 값과 name을 붙여주는 코드를 작성해보겠습니다.
pd.Series([1, 2, 3, 4, 5], index=['num', 'num + 1', 'num + 2', 'num + 3', 'num + 4'], name='Series of numbers')
이 코드를 실행하면 앞서 봤던 series 형식의 데이터에 각각의 index 값과 name이 출력 되는 것을 확인할 수 있습니다.
이제 kaggle에 내장된 데이터 파일 중 wine_reviews 파일을 읽어와서 데이터를 출력하는 방법을 알아보겠습니다. 먼저, 아래 코드를 실행해줍니다. 이때, 파일을 읽어오는 함수는 read_확장자명(파일의 경로/파일명.확장자명) 입니다. 여기서 사용할 파일은 csv이므로 파일 확장자 명도 csv인 것을 확인할 수 있습니다.
wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv")
위 코드를 정상적으로 실행했다면 아래 코드를 통해 해당 데이터 프레임의 크기를 확인할 수 있습니다.
wine_reviews.shape
약 13만개에 달하는 데이터가 있다는 것을 확인할 수 있습니다. 이 중에서도 몇개만 추려서 보기 위해 사용할 함수가 있습니다. 바로 head(), tail()입니다. head 함수의 경우 이름에서도 알 수 있듯이 데이터 프레임의 가장 앞에서부터 지정한 만큼 데이터를 출력해 줍니다.
tail 함수는 head 함수와 반대로 데이터 프레임의 가장 끝에서부터 지정한 만큼 데이터를 출력해줍니다. 이번에는 앞에서 5개의 데이터만 보기 위해 head(5)를 사용하겠습니다.
wine_reviews.head()
head 함수와 tail 함수를 사용할 때도 shape 함수를 사용할 때와 마찬가지로 데이터 프레임의 이름 뒤에 ' . ' 을 붙이고 사용해야하는 것을 명심합시다!
그런데 이렇게 head 함수를 사용하면 출력 값에 unnamed:0 이라는 column이 제일 앞에 추가되어 있는 것을 볼 수 있습니다. 어차피 기본 인덱스와 같은 값을 나타내기 때문에 이것을 없애 주기 위해 아래와 같이 'index_col = 0'을 추가해줍니다.
wine_reviews = pd.read_csv("../input/wine-reviews/winemag-data-130k-v2.csv", index_col=0)
wine_reviews.head(5)
이제 보다 깔끔한 데이터 프레임이 출력되는 것을 볼 수 있습니다!
이렇게하면 이제 Creating, Reading and Writing 의 튜토리얼을 완료하셨습니다! 축하드립니다! 연습문제를 풀면서 실력을 향상시켜보세요.
그럼 오늘은 여기까지! 모두 즐거운 pandas 튜토리얼 되셨길 바라며 포스팅을 마칩니다.
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 14 주차 프로젝트 회고 | 취업 준비(1분 자기소개서 작성팁, 면접시 참고사항) (0) | 2023.06.29 |
---|---|
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 13 주차 프로젝트 회고 |데이터분석 프로젝트 (1) | 2023.06.18 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 11 주차 회고 | 파이썬 반복문 (0) | 2023.06.04 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 10 주차 회고 | 신호등 PLC 프로젝트 (0) | 2023.05.25 |
[포스코x코딩온] 스마트 팩토리 SW 개발자 과정 9 주차 회고 | PLC - 펑션블록(카운트), 사용자 정의 펑션/펑션블록 (0) | 2023.05.18 |