2024.07.10
오늘은 아래 사이트에서 아주 초반 부분을 다뤄보며 스터디를 하기로 했기 때문에 풀어본 순서대로 적어보았다.
나는 데이터 전처리 100문제 content 1번 getting & knowing data 의 1번 ~ 5번을 풀기로 배정 받았다.
나머지도 차차 해볼 예정이다.
https://www.datamanim.com/dataset/99_pandas/pandasMain.html#getting-knowing-data
# 주피터 노트북 이용
🔒 1번) 데이터를 로드하라 데이터는 \t로 구분되어 있다
데이터는 문제 제공자님의 깃허브에 Url로 받아 연습했다.
롤 랭킹 데이터 : https://www.kaggle.com/datasnaek/league-of-legends
DataUrl = ‘https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv’
🔓 해결방법
데이터를 로드하기 위해 판다스 모듈을 이용한다.
import pandas as pd # 판다스 모듈을 이용한다. 이름을 pd로 지정한다.
다음은 데이터 url을 복사하여 다음과 같이 데이터를 불러온다.
.read_파일형식 : 파일을 데이터프레임으로 불러온다
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv')
# df라는 변수를 지정한다.
# df라는 공간에 판다스로 csv 파일을 dataframe으로 읽어와서 담아준다.
이 상태로는 컬럼이랑 데이터가 구분되어 보이지 않기 때문에 구분을 해준다.
주피터 노트북에서는 method가 어떤식으로 쓰이는지 세부정보를 확인할 수 있다.
▶ shift + tab
이렇게 뜬다!
signature는 전반적인 파라미터를 제시하고, 밑에 doctring이라고 있는데 이 부분은 이 method가 어떻게 기능을 하는지 요약 되어 있고 그 밑에 파라미터에 대한 설명도 제시되어 있다.
밑으로 내려가서 파라미터에 대한 자세한 설명을 보면 sep라는 것에 설명으로 다음과 같이 나와 있다.
Character or regex pattern to treat as the delimiter.
= 구분 기호로 처리할 문자 또는 정규식 패턴입니다.
그래서 sep로 구분이 되어 있는 것을 알게 되어 밑에 처럼 csv 파일 옆에 구분자를 표시해줬다.
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/pandas/main/lol.csv', sep='\t')
# sep='\t'로 구분하여 데이터프레임을 보여준다.
그리고 변수 df를 입력하면 주피터 노트북에서 이렇게 보인다.
🔒 2번) 데이터 상위 5개 행을 출력하라
데이터의 맨 위부터 5개 행을 출력하기
🔓 해결방법
df.head(5)
.head() method를 이용하여 출력한다.
🔒 3번) 데이터의 행과 열의 개수를 파악하라
이 데이터의 행의 개수와 열의 개수를 확인하기
🔓 해결방법
row_column = df.shape
# print(row_column)하면 튜플 형식으로 다음과 같이 출력된다.
# (54190, 61)
print('행 : ', row_column[0]) # [0] 은 튜플 중 첫 번째
print('열 : ', row_column[1]) # [1] 은 튜플 중 두 번째
.shape() method를 이용하여 출력한다.
🔒 4번) 전체 컬럼을 출력하라
전체 컬럼명을 출력하기
🔓 해결방법
columns = df.columns
print(columns)
.columns method를 이용한다.
인덱스 타입으로 컬럼명들이 리스트 형태를 갖추며 한 번에 출력이 된다.
이 상태로 인덱싱이 가능해진다.
🔒 5번) 6번째 컬럼명을 출력하라
6번째의 컬럼명을 출력하기
🔓 해결방법
인덱싱이 가능한 리스트 형태로 갖췄기 때문에 인덱싱으로 6번째 컬럼명을 출력할 수 있게 되었다.
columns = df.columns
print(columns[5]) # 6번째의 컬럼을 출력
🔒 6번) 6번째 컬럼의 데이터 타입을 확인하라
6번째 컬럼의 데이터타입 확인하기
🔓 해결방법
먼저 데이터타입부터 보기 전, 데이터 정보에 대해서 확인을 해보았다.
df.info()
.info() method를 이용하면 각 컬럼과 null값 여부 및 데이터타입을 전체적으로 보여준다.
여기서도 6번째 컬럼인 'firstBlood'의 데이터 타입이 보이지만, 딱 데이터 타입만을 출력하기 위해 코드를 짜보자.
df['firstBlood'].dtype
.dtype 을 사용하면 다음과 같이 데이터타입을 알려준다.
df[df.columns[5]].dtype
위에는 직접 컬럼명을 명시해줬지만, 이렇게 앞선 6번째컬럼이라고 검색했던 코드를 넣어줘도 결과는 동일하게 출력된다.
여기서 이 컬럼만 출력을 해보고 타입을 확인해보자.
df['firstBlood']
type(df['firstBlood'])
이렇게 불러운 firstBlood의 컬럼은 시리즈 형태임을 알 수 있다. (데이터타입을 확인한 것이 아님)
뭔가 이렇게 특정 컬럼에 대한 데이터들과 정보를 보기 좋게 불러오기 위해서는 데이터프레임 형태로 보여주면 되는데 그 방법은 아래와 같다.
df[['firstBlood']]
[ ]로 한 번 더 감싸기! 그러면 눈에 더 익숙한 데이터프레임 형태로 보여준다.
type(df[['firstBlood']])
타입도 확인해보면 데이터프레임으로 변경되어 있다.
하지만 데이터프레임 형태에서 .dtype을 사용해 컬럼내의 데이터 타입을 확인하려고 하면 오류가 난다.
# 데이터 프레임인 경우로 .dtype을 이용하면 오류가 난다.
df[['firstBlood']].dtype
문득 데이터타입에 대해서 int64 이게 어떤 의미인지 알기 위해 찾아보니 int 자료형 뒤 숫자는 비트를 의미하는 것이었다.
잘 정리된 블로그를 통해 알 수 있었당. 멋지다..
https://seolhee2750.tistory.com/18
'📒 Today I Learn > 🐼 Pandas' 카테고리의 다른 글
[Pandas] Apply & Map (0) | 2024.07.17 |
---|---|
[Pandas] Pandas? (0) | 2024.07.17 |
[Pandas] Filtering & Sorting (2) (0) | 2024.07.15 |
[Pandas] Filtering & Sorting (1) (0) | 2024.07.12 |
[Pandas] Getting & Knowing Data (2) (0) | 2024.07.11 |