[Elice] 02-03 데이터 조작 및 분석을 위한 Pandas 기본
-
series 데이터
- pandas : 구조화된 데이터를 효과적으로 처리하고 저장, Array계산에 특화된 NumPy 기반으로 설계
- Numpy + array가 보강된 형태, Data와 Index를 가진다.
ex) import pandas as pd
data = pd.Series([1,2,3,4])
print(data) #index가 포함되어서 표로 결과가 나타남
- Series는 값(values)을 ndarray형태로 가지고 있음
ex) print(data.values) #[1 2 3 4], ' '로 구분,
print(type(data.values)) #'numpy.ndarray'
- dtype으로 데이터 타입을 지정할 수 있다.
ex) data = pd.Series([1, 2, 3, 4], dtype = "float")
print(data.dtype) #float64, data타입은 모두 동일해야한다.
- index를 지정할 수 있고(data = ''', index = []로 지정), index로 접근 가능
- Dictionary를 활용하여 Series 생성 가능
ex) dict = {}
population = pd.Series(dict)로 생성
-
Dataframe
- 여러 개의 Series가 모여서 행과 열을 이룬 데이터
- Dictionary를 활용하여 DataFrame 생성 가능 : dictionary의 value값에 list로 대입
- Dictionary를 이용 >> Series생성 >> DataFrame생성
- DataFrame 속성을 확인하는 방법
- DataFrame의 index와 column에 이름 지정 가능
ex) DataFrame.index.name = ""
DataFrame.index.name = ""
- 데이터 프레임 저장 및 불러오기 가능
-
데이터 선택 및 변경하기
- indexing/slicing이용해서 선택.
- .loc : 명시적인 인덱스를 참조하는 인덱싱/슬라이싱
.iloc : 암묵적으로 location을 인덱싱/슬라이싱, 파이썬 스타일의 정수 인덱스 인덱싱/슬라이싱 (index이름이 아닌 기존의 정수 index로 불러오는 것)
ex) country.loc['china'] #인덱싱
country.loc['japan':'korea', : 'population'] #슬라이싱
country.iloc[0] #인덱싱
country.iloc[1:3, :2] #슬라이싱
- column 이름을 활용해서 데이터 선택도 가능하다.
ex) country['gdp'] #Series형태로 출력
country[['gdp']] #DataFrame형태로 출력
- Masking 연산이나 query함수를 활용하여 조건에 맞는 DataFrame 행 추출 가능
- Series도 numpy array처럼 연산자 활용 가능
- list of dictionary로 데이터 추가 가능
- NaN(not a number)값으로 초기화 한 새로운 컬럼 추가
- column삭제 가능
ex) df.drop('전화번호', axis = 1, inplace = True) #axis = 1 : 열방향/ axis = 0 : 행방향, inplace = True : 원본 변경을 의미