Pandas는 수집된 데이터들을 분석하기 전에 전처리를 하는 과정에서 사용되는 핵심적인 패키지입니다. 이번 포스팅에서는 Pandas가 과연 무엇인지, 어떻게 사용하면 되는지에 대해서 차근차근 알아보도록 하겠습니다.
판다스(Pandas)?
Pandas 는 Python Data Analysis Library의 약어입니다. Python을 활용해 데이터 분석을 하기 위해서 사용하는 필수적인 패키지이죠. 통계 분석을 위해 많이 사용되는 R의 Dataframe을 벤치마킹하여 Python에서 사용할 수 있는 형태의 Dataframe을 제공해주는 라이브러리입니다.
판다스 데이터프레임 (Pandas DataFrame)을 활용하면 데이터를 표(Table) 형태로 처리할 수 있어서 수집된 데이터의 전처리 등 각종 데이터 핸들링을 쉽고 편하게 할 수 있습니다.
데이터 프레임 (DataFrame)
판다스 데이터프레임 (Pandas DataFrame)은 다양한 데이터 타입을 이용하여 만들어낼 수 있는데요. (list, dictionary, series, ndarray 등). 개념적으로 데이터 프레임은 Series들을 하나의 열로 취급한 집합이라고 볼 수 있습니다. 데이터를 표의 형태로 처리하는 자료구조인데요. 보통 RDB 환경에서 SQL로 테이블을 컨트롤할 수 있는 수준의 기능들이 상당 부분 데이터프레임에 구현되어 있습니다.
DataFrame 생성 방법
다양한 데이터 타입을 이용하여 만들어낼 수 있지만, 대표적인 두 가지 방법에 대해서 알아보도록 하겠습니다.
List 이용
import pandas as pd
frame = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
frame
Dictionary 이용
import pandas as pd
data = {
'age' : [20,23,48],
'height' : [183,192,175],
'weight' : [77,83,65]
}
indexName = ['슈퍼맨','스파이더맨','배트맨']
frame = pd.DataFrame(data, index = indexName)
frame
DataFrame 조회 방법
열(Column) 조회
#열 조회
print ("■ 열 조회 - 1")
print (frame['age'])
print ("■ 열 조회 - 2")
print(frame.age)
■ 열 조회 - 1
슈퍼맨 20
스파이더맨 23
배트맨 48
Name: age, dtype: int64
■ 열 조회 - 2
슈퍼맨 20
스파이더맨 23
배트맨 48
Name: age, dtype: int64
특정 열의 특정 값을 조회하고 싶을 때는 아래와 같은 방법을 사용합니다.
print("\n<특정 열의 특정 값 조회>")
print(frame['age'][1])
print(frame.age[1])
행(Row) 조회
행 조회는 열 조회와 조금 다르게 loc과 iloc을 사용해서 조회 할 수 있습니다.
우선 loc은 인덱스 네임(index name)으로 조회하는 방식입니다.
#행 조회
print ("\n\n<특정 행 조회>")
print (frame.loc['배트맨'])
print("\n\n<loc를 Seq로 조회할 경우>")
# print(frame.loc[0]) # 조회가 될까요? 주석을 풀고 살행해 봅시다.
iloc은 인덱스 시퀀스(index sequence)를 사용해서 조회하는 방식입니다.
print("\n\n<iloc로 조회할 경우>")
print(frame.iloc[0])
# print(frame.iloc['배트맨']) # 조회가 될까요? 주석을 풀고 살행해 봅시다.
DataFrame 수정 방법
열(Column) 추가하기
먼저 blood_type 이라는 컬럼을 추가하겠습니다.
frame_add_col = pd.DataFrame(frame,columns= ['age','height','weight','blood_type'])
frame_add_col
컬럼이 추가된 것을 확인할 수 있는데요. 아직 데이터를 넣지 않았기 때문에 전부 NaN으로 표시되고 있습니다. 이제 데이터를 넣어줍시다.
frame_add_col['blood_type'] = ['A','B','O']
frame_add_col
행(Row) 추가하기
frame_add_index = frame_add_col.copy()
frame_add_index.loc['앤트맨'] = [25,170,50,'AB']
frame_add_index
행 · 열 삭제하기
drop 메소드를 사용하면 행 또는 열을 삭제할 수 있습니다. axis 값은 행이면 '0', 열이면 '1'로 지정해주시면 됩니다.
print('remove age column:\n')
frame_add_col.drop("age", axis=1)
그런데 이 경우 기존 프레임에서 적용되는 것이 아니라 삭제된 상태의 프레임을 리턴해줍니다. 그러므로 기존 프레임에 적용하기 위해서는 inplace = True 옵션을 추가로 주어야 합니다.
frame_add_index.drop('배트맨', axis=0, inplace=True)
'IT 라이프' 카테고리의 다른 글
[Visual SVN] pre-commit hook 샘플 - 커밋 메세지 또는 이슈번호 입력 체크, 삭제 금지 등 (0) | 2021.08.24 |
---|---|
신형 맥북 프로 16형에 탑재!? 애플 M1X - 유출 정보 총정리 (0) | 2020.12.24 |
Vue.js 슬롯(Slot) 사용하기 : v-slot 디렉티브 (0) | 2019.06.06 |
윈도우 모든 폴더 별 용량 한번에 쉽게 확인하는 방법 : Windows DU (0) | 2019.06.02 |
인터넷 안되는(오프라인) 환경 NPM 패키지 설치 방법 - npmbox (0) | 2019.05.29 |