<11-2주차 수강 클립>
04. 데이터 분석을 위한 Python (Pandas)
07. DataFrame 타입이해 - 01. DataFrame 데이터 살펴보기
08. DataFrame 타입이해 - 02. DataFrame 구조 이해하기
09. DataFrame 타입이해 - 03. DataFrame 데이터 생성하기
10. DataFrame 타입이해 - 04. 샘플 csv 데이터로 DataFrame 데이터 생성하기
저번 주차의 Series 데이터에 이어 pandas의 대표적인 객체라 할 수 있는
DataFrame에 대해 알아보았습니다.
Series가 1차원 배열의 데이터를 나타내는 객체라면
DataFrame은 Series 2차원으로 확대된 버전이라고 할 수 있습니다.
>>수강 인증샷<<
07. DataFrame 타입이해 - 01. DataFrame 데이터 살펴보기
- DataFrame
Series가 1차원이라면 DataFrame은 2차원으로 확대된 버전임
→ 엑셀 스프레드시트(Excel spreadsheet)라고 생각하기!
2차원이기 때문에 인덱스가 row, column 으로 구성됨
→ row: 각 개별 데이터 / column: 개별 속성
*) DataFrame은 Data Analysis, Machine Learning에서 데이터 변형을 위해 가장 많이 사용됨
import pandas as pd
# data 출처: https://www.kaggle.com/hesh97/titanicdataset-traincsv/data
train_data = pd.read_csv('csv데이터가 있는 경로')
: pandas의 read_csv 함수로 .csv 파일을 읽어와 DataFrame으로 구성하기
- head, tail 함수
데이터 전체가 아닌 일부(시작부터 or 끝에서부터)를 간단히 보이기 위한 함수
train_data.head()
train_data.tail(n=3)
: default값은 5, 원하는 개수만큼 n에 전달해서 n만큼의 데이터를 확인할 수 있음
- DataFrame 데이터 파악하기
shape 속성 (row, column의 개수)
describe 함수 (숫자형 데이터의 통계치 계산)
info 함수 (데이터 타입, 각 아이템의 개수 등을 출력)
train_data.shape #row개수, col개수
train_data.describe()
train_data.info()
08. DataFrame 타입이해 - 02. DataFrame 구조 이해하기
- 인덱스 (index)
각 아이템을 특정할 수 있는 고유의 값을 저장
복잡한 데이터의 경우, 멀티 인덱스로 표현 가능
train_data.index
: DataFrame의 index 멤버변수 확인
: Out: RangeIndex(start=0, stop=891, step=1)
- 컬럼 (column)
각각의 특징, 특성(feature)을 나타냄
복잡한 데이터의 경우, 멀티 컬럼으로 표현 가능
train_data.columns
: DataFrame의 columns 멤버변수 확인
: Out: Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], dtype='object')
09. DataFrame 타입이해 - 03. DataFrame 데이터 생성하기
- DataFrame 생성하기
일반적으로 분석을 위한 데이터는 다른 데이터 소스(database, 외부파일)을 통해 DF를 생성함
(*실습을 통해 dummy 데이터를 생성하는 방법을 다룸)
- dictionary로부터 생성하기
dict의 key값 = column
dict의 value값 = 데이터
data = {'a': 100, 'b': 200, 'c': 300} #col (key)
pd.DataFrame(data, index = ['x', 'y', 'z']) #row (index)
: DF의 index인 x, y, z에 각각 a, b, c에 해당하는 값 100, 200, 300으로 채워짐
data = {'a' : [100, 200, 300], 'b': [1, 2, 3], 'c': [4, 5, 6]}
pd.DataFrame(data, index=['x', 'y', 'z'])
: DF의 index인 x, y, z에 해당하는 각각의 값 지정해주기
- Series로부터 생성하기
각 Series의 인덱스 = column
DataFrame의 한 row = 한 Series
s1 = pd.Series([100, 200, 300], ['a', 'b', 'c'])
s2 = pd.Series([101, 202, 303], ['a', 'b', 'c'])
s3 = pd.Series([110, 220, 330], ['a', 'b', 'c'])
pd.DataFrame([s1, s2, s3], index=['00', '01', '02']) #Series 세 개를 연속적으로 넘기기
: DataFrarme 객체 생성 시 ([Series 데이터], index=인덱스로 지정할 값의 리스트)
s1 = pd.Series([100, 200, 300], ['a', 'b', 'd'])
s2 = pd.Series([101, 202, 303], ['a', 'b', 'k'])
s3 = pd.Series([110, 220, 330], ['a', 'b', 'c'])
pd.DataFrame([s1, s2, s3], index=['00', '01', '02'])
: 각 Series마다 겹치는 인덱스가 없을 경우 → DF가 만들어질 때 모든 Series의 인덱스가 column이 되고 해당 column에 값이 없을 경우 NaN(Not a Number)값으로 채움
10. DataFrame 타입이해 - 04. 샘플 csv 데이터로 DataFrame 데이터 생성하기
- csv 데이터로부터 DataFrame 생성
데이터 분석을 위해 dataframe을 생성하는 가장 일반적인 방법임
데이터 소스로부터 추출된 csv(comma separated values_변수에 대한 값이 ','로 구분된 데이터) 파일로부터 생성
pandas.read_csv 함수 사용
import pandas as pd
# data 출처: https://www.kaggle.com/hesh97/titanicdataset-traincsv/data
train_data = pd.read_csv('csv데이터가 있는 경로')
train_data.head()
: 항상 데이터 파일을 불러온 다음 확인을 위해 .head()함수 호출하기!
- read_csv 함수 파라미터
- sep - 각 데이터 값을 구별하기 위한 구분자(separator) 설정 (기본값 ','_csv 파일은 ','로 구분돼있음)
- header - header를 무시할 경우, None 설정
- index_col - index로 사용할 column 설정
- usecols - 실제로 dataframe에 로딩할 columns만 설정
train_data = pd.read_csv('csv데이터가 있는 경로', header=None)
train_data.head()
: header을 무시, 0-based로 열 번호를 매김
train_data = pd.read_csv('csv데이터가 있는 경로', index_col='PassengerId')
train_data.head()
: DataFrame의 column중 index로 사용할 column을 지정
train_data.columns
: read_csv로 데이터 파일 로딩 시 index를 'PassengerId'로 설정했기 때문에 train_data의 column들 중 PassengerId는 없음을 확인
: Out: Index(['Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], dtype='object')
train_data = pd.read_csv('csv데이터가 있는 경로', use_cols=['PassengerId', 'Survived', 'Pclass', 'Name'])
train_data.head()
: 원하는 변수=Feature=column의 데이터들만 로딩
강의 링크: https://bit.ly/3cB3C8y
'코딩 > 머신러닝&데이터 분석 강의' 카테고리의 다른 글
[머신러닝 인강] 12-2주차: Pandas DataFrame 새 컬럼 추가/삭제, 상관관계 계산, NaN 데이터 처리 (0) | 2021.05.09 |
---|---|
[머신러닝 인강] 12-1주차: Pandas DataFrame 의 컬럼,데이터 선택하기 (0) | 2021.05.08 |
[머신러닝 인강] 11-1주차: Series 연산, boolean selection, 슬라이싱 (0) | 2021.04.27 |
[머신러닝 인강] 10-2주차: Pandas, Series의 이해 (0) | 2021.04.24 |
[머신러닝 인강] 10-1주차: linalg 서브모듈, 그래프 표현 (0) | 2021.04.24 |