2차원 데이터 핸들링을 위해서는 판다스를 사용하자! 데이터 처리를 직접 수행해보면서 문제에 부딪힐때마다 판다스의 다양한 API 를 찾아서 해결해 가자!
주요 구성 요소 - DataFrame,Series,Index
DataFrame
Column * Rows 2차원 데이터셋. 행 번호는 Index로 고유한 Key객체이다.
Series
1개의 Column값으로 구성된 1차원 데이터 셋
- 기본적으로 Pandas의 DataFrame은 ndarray로 구성된다.
DataFrame에서 Series 추출 및 DataFrame 필터링 추출
- DataFrame객체에서 [ ]연산자내에 한개의 컬럼만 입력하면 Series 객체 반환
- DataFrame객체에서 [] 연산자내에 한개의 컬럼을 리스트로 입력하면 한개의 컬럼으로 구성된 DataFrame 반환
shape
DataFrame의 행,열 크기를 가지고 있는 속성. (인덱스 속성은 열의 크기(차원)에 포함되지 않는다.)
info()
DataFrame내의 컬럼명, 데이터 타입, Null건수, 데이터 건수 정보를 알 수 있다.
describe()
데이터값들의 평균,표준편차,4분위 분포도를 제공합니다. 숫자형 컬럼들에 대해서 해당 정보를 제공합니다.
value_counts()
동일한 개별 데이터 값이 몇건이 있는지 정보를 제공합니다. 즉 개별 데이터값의 분포도를 제공합니다. 주의할 점은 value_counts()는 Series객체에서만 호출 될 수 있으므로 반드시 DataFrame을 단일 컬럼으로 입력하여 Series로 변환한 뒤 호출합니다.
sort_values()
by = 정렬컬럼, ascending = True(오름차순), False(내림차순)
- 여러개의 컬럼을 정렬하고 싶다면 by에 순서대로 우선순위를 부여하게된다.
DataFrame, 리스트, 딕셔너리, 넘파이 ndarray 상호 변환
- list를 DataFrame으로 변환 : 리스트 객체와 매핑되는 컬럼명들을 입력. pd.DataFrame(list, columns=col_name1)
- ndarray를 DataFrame으로 변환 : ndarray와 매핑되는 컬럼명들을 입력. pd.DataFrame(array, columns=col_name1)
- 딕셔너리를 DataFrame으로 변환 : 딕셔너리의 키로 컬럼명을 값을 리스트 형식으로 입력. pd.DataFrame(dict)
- DataFrame을 ndarray로 변환 : DataFrame객체의 values 속성을 이용하여 ndarray로 변환 (자주 사용된다!)
- DataFrame을 리스트로 변환 : DataFrame 객체의 values 속성을 이용하여 먼저 ndarray로 변환 후 tolist()를 이용하여 list로 변환
- DataFrame을 딕셔너리로 변환 : DataFrame 객체의 to_dict()를 이용하여 변환
DataFrame 데이터 삭제
drop()
- axis : 행 삭제할때는 axis=0, 컬럼 삭제할때는 axis=1
- inplace=False라면 원본에는 변경이 없고 삭제가 된 결과를 반환한다.
데이터 셀렉션과 필터링 - [], loc[], iloc[], Boolean Indexing
ix, loc, iloc
강의에는 ix도 같이 설명하지만 현재 pandas에 ix는 지원하지 않는다고 합니다. 그래서 ix 사용 코드 또한 모두 에러가 발생합니다! 인덱싱은 loc나 iloc로 사용해야합니다!
loc : 명칭 기반 인덱싱
iloc : 위치 기반 인덱싱
0을 기준으로 시작하는 행과 열의 위치 기반 인덱싱 기법입니다. 일반적인 프로그래밍 언어에서 배열 인덱싱을 할때 사용하는 가장 익숙한 방법입니다.
Boolean indexing
조건식을 안에 넣어 필터링하는 방법입니다. 명칭기반, 위치기반 인덱싱을 섞어 사용하는것보다는 자신만의 인덱싱 기준을 넣어 지키도록 하자!
- 위의 코드에서 titanic_df 객체에 Booelan indexing으로 Age값이 60이상인 데이터만 필터링 하는것을 확인할수있습니다.
'AI > Machine Learning' 카테고리의 다른 글
[파이썬 머신러닝 완벽 가이드 정리] 2. 사이킷런으로 시작하는 머신러닝 - #1 붓꽃 품종 예측 (0) | 2021.02.28 |
---|---|
[파이썬 머신러닝 완벽 가이드 정리] 1. 파이썬 기반의 머신러닝과 생태계 이해 - #3 Pandas (2) Aggregation함수와 Group by 수행 (0) | 2021.02.28 |
[파이썬 머신러닝 완벽 가이드 정리] 1. 파이썬 기반의 머신러닝과 생태계 이해 - #2 Numpy (0) | 2021.02.12 |
[파이썬 머신러닝 완벽 가이드 정리] 1. 파이썬 기반의 머신러닝과 생태계 이해 - #1 (0) | 2021.02.12 |