일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 사이킷런
- 시물레이션
- 사회조사분석사 2급 기출문제집
- DFS
- 공모주
- 사회조사분석사 2급 필기 공부방법
- 사회조사분석사 2급 접수
- BFS
- 너비우선탐색
- 2월공모주
- 현대엔지니어링
- 오미크론 자가격리
- 공모주 청약
- 그리디
- 사회조사분석사 2급 독학
- 백준 알고리즘
- 머신러닝
- 현대엔지니어링 수요예측
- 사회조사분석사 2급 공부방법
- 파이썬 정렬
- 사회조사분석사 2급
- 사회조사분석사 2급 필기 요약정리
- 벽부수고이동하기 파이썬
- 사회조사분석사2급실기신청꿀팁
- 사회조사분석사 2급 필기 시험시간
- 알고리즘
- 정렬
- 백준
- 공모주청약
- 사회조사분석사2급실기신청
- Today
- Total
세상을 바꾸는 데이터
[Pandas] 판다스 - 파일을 DataFrame으로 불러오기, 기본 API 본문
새로운 주피터 노트북을 생성하고 판다스 모듈을 임포트 한다.
import pandas as pd
다음으로 데이터 파일을 판다스의 DataFrame으로 로딩할 것이다. 사용할 데이터 파일은 캐글의 대표 연습 파일인 타이타닉 탑승자 파일이다. 타이타닉 탑승자 데이터 파일은 https://www.kaggle.com/c/titanic에서 내려받을 수 있다. train 파일을 titanic_train으로 파일명을 변경한다.
https://www.kaggle.com/c/titanic
Titanic - Machine Learning from Disaster | Kaggle
www.kaggle.com
※주의※
데이터 파일은 압축 후 주피터 노트북에서 코딩을 실행하고자 하는 폴더로 옮겨야 한다. 예를 들면 Pandas라는 폴더 안에 코드를 실행하고자 하는. ipynb와 train.csv파일이 같이 있어야 한다는 뜻이다. 이를 안 할 시 파일을 로딩할 수 없다.
read_csv( )
- pd.read_csv( )
read_csv( )를 이용하여 csv 파일을 편리하게 DataFrame으로 로딩한다. read_csv( )의 sep인자를 해당 구분 문자(콤마, 탭)로 변경하여 다른 유형의 파일들이 로드가 가능하다.
titanic_df = pd.read_csv('titanic_train.csv') # 타이타닉 데이터 파일 불러오기
print('titanic 변수 type:',type(titanic_df)) # titanic_df의 데이터 타입은 DataFrame
# titanic 변수 type: <class 'pandas.core.frame.DataFrame'>
head( )
- .head()
head( )를 이용하여 DataFrame의 맨 앞 일부 데이터만 추출한다. head( )의 목적은 얼마나 많은 피처(feature)가 있으며 데이터 값들은 어떻게 생겼는지 짧게 보기 위해 주로 사용한다. head ( ) 안에는 숫자를 넣는다. 예를 들어 head(5)라고 입력하면 처음부터 5번째까지의 행 데이터가 추출된다.
titanic_df.head(5) # 맨 앞부터 5개의 데이터 추출
[Output]
- 탑승자 데이터 개략적으로 살펴보기
- Passengerid: 탑승자 데이터 일련번호
- survived: 생존 여부, 0 = 사망, 1 = 생존
- Pclass: 티켓의 선실 등급, 1 = 일등석, 2 = 이등석, 3 = 삼등석
- sex: 탑승자 성별
- name: 탑승자 이름
- Age: 탑승자 나이
- sibsp: 같이 탑승한 형제자매 또는 배우자 인원수
- parch: 같이 탑승한 부모님 또는 어린이 인원수
- ticket: 티켓 번호
- fare: 요금
- cabin: 선실 번호
- embarked: 중간 정착 항구 C = Cherbourg, Q = Queenstown, S = Southampton
tail( )
- .tail()
tail( )은 head( )와는 반대로 DataFrame의 맨 뒤 일부 데이터만 추출한다.
titanic_df.tail(5) # 뒤에서부터 5개 데이터 추출
[Output]
DataFrame의 행과 열 크기 알아보기
- .shape
DataFrame의 행과 열 크기를 알아보는 방법은 DataFrame 객체의 shape 변수를 이용하는 것이다. shape는 DataFrame의 행과 열을 튜플 형태로 반환한다.
print('DataFrame 크기: ', titanic_df.shape) # DataFrame 크기: (891, 12)
DataFrame은 데이터뿐만 아니라 칼럼의 타입, Null(비워진 값) 데이터 개수, 데이터 분포도 등의 메타 데이터도 조회가 가능하다. 대표적인 메서드로 info( )와 describe( )가 있다.
info( )
- .info( )
info ( ) 메서드는 총 데이터 건수와 각 피처(feature)마다의 데이터 타입, Null 건수를 알 수 있다. 자주 사용되므로 기억하자.
titanic_df.info()
[Output]
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PassengerId 891 non-null int64
1 Survived 891 non-null int64
2 Pclass 891 non-null int64
3 Name 891 non-null object
4 Sex 891 non-null object
5 Age 714 non-null float64
6 SibSp 891 non-null int64
7 Parch 891 non-null int64
8 Ticket 891 non-null object
9 Fare 891 non-null float64
10 Cabin 204 non-null object
11 Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
결과: Age, Cabin, Embarked에 Null 값이 존재함을 알 수 있다.
describe( )
- .describe( )
describe( ) 메서드는 칼럼 별 숫자형 데이터 값의 n-percentile 분포도, 평균값, 최댓값, 최솟값을 나타낸다. describe( ) 메서드는 오직 숫자형 칼럼(int, float 등)의 분포도만 조사하며 object 타입의 칼럼은 출력에서 제외시킨다. describe( ) 메서드만으로 개략적인 수준의 분포도를 확인할 수 있어 유용하게 쓰인다.
titanic_df.describe()
[Output]
★★ value_counts( )
- value_counts( )
DataFrame의 [ ] 연산자 내부에 칼럼명을 입력하면 해당 칼럼에 해당하는 Series 객체를 반환한다. 이때 반환한 Series 객체에 value_counts( ) 메서드를 호출하면 해당 칼럼 값의 유형과 건수를 확인할 수 있다. 데이터의 분포도를 확인하는데 매우 유용한 함수이니 꼭 기억해야 한다.
※ 주의 ※
value_counts()는 Series객체에서만 호출될 수 있으므로 반드시 DataFrame을 단일 칼럼으로 입력하여 Series로 변환한 뒤 호출해야 한다.
value_counts = titanic_df['Pclass'].value_counts() # Pclass별 데이터값 건수 확인
print(value_counts)
[Output]
3 491
1 216
2 184
Name: Pclass, dtype: int64
결과: 3등급 > 1등급 > 2등급 순으로 사람이 많았다는 것을 알 수 있다.
sort_values( )
- sort_values( )
sort_values( )는 내가 원하는 칼럼명 순서대로 정렬을 할 수 있다. (by=정렬 칼럼, ascending=True 또는 False로 오름차순/내림차순으로 정렬)
titanic_df[['Name','Age','Pclass']].sort_values(by=['Pclass','Age'])
# titanic 데이터에서 Name, Age, Pclass 컬럼명을 뽑고,
# (1. Pclass별 오름차순, 2. Age별 오름차순)으로 정렬
[Output]
다음 포스트에서는 DataFrame을 넘파이 ndarray, 리스트, 딕셔너리로 변환하는 방법에 대해 알아보겠다.
Reference
https://github.com/chulminkw/PerfectGuide
https://ichi.pro/ko/r-hamsu-jaseubseo-read-csv-66252221828004
'ML > Pandas' 카테고리의 다른 글
[Pandas] 판다스 - DataFrame을 정렬, 집계, 그룹하는 방법 (2) | 2022.01.25 |
---|---|
[Pandas] 판다스 - 데이터 선택 및 필터링 (indexing) (9) | 2022.01.24 |
[Pandas] 판다스 - DataFrame 칼럼 데이터 생성, 수정, 삭제 (10) | 2022.01.23 |
[Pandas] 판다스 - 데이터프레임과 넘파이 상호 변환 (0) | 2022.01.23 |
[Pandas] 판다스(Pandas)란?? (4) | 2022.01.19 |