Recent Posts
Recent Comments
Link
Today
Total
02-09 05:32
관리 메뉴

Hippo's data

데이터프레임 다루기1 - 데이터 프레임 조회 및 추출 본문

Python

데이터프레임 다루기1 - 데이터 프레임 조회 및 추출

Hippo's data 2023. 12. 10. 22:21
728x90

오늘은 정형 데이터분석에서 주로 사용되는 데이터 프레임 형식 다루기에 대해 정리해보겠습니다

 

데이터프레임(DataFrame)이란? 

->2차원의 행(col), 열(row)의 테이블 구조를 가진 자료형

 

보통 테이블 형태의 파일은 데이터프레임형식으로 파일을 읽는데요

파일 읽고 데이터프레임 생성 

data = pd.read_csv('경로')

파라미터

- sep - 각 데이터 값을 구별하기 위한 구분자(separator) 설정 
- index_col : index로 사용할 column 설정
- usecols : 실제로 dataframe에 로딩할 columns만 설정 (usecols은 index_col을 포함해야 함)

 

# 함수에 커서올리고 shift+tab을 누르면 해당 함수의 parameter 볼 수 있음

 

<데이터 살펴보기>

- head, tail

-> 파일이 너무 크므로 일부분만 간단히 보기위함 

data.head(n=3) 

-> 처음부터 3줄까지 확인

data.tail(n=5) 

-> 마지막부터 5줄까지 확인

 

- 요약 함수들

 - data.shape : row과 col의 개수를 튜플로 반환함(row,col순)
 - data.columns : 컬럼명 확인
 - data.info( ) : 데이터 타입, 각 칼럼당 데이터 개수, 결측치수

 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   fid        2365 non-null   int64  
 1   field_1    2365 non-null   int64  
 2   OBJT_ID    2365 non-null   int64  
 3   OCCU_DE    2365 non-null   int64  

 

 - data.describe( ) : 데이터 컬럼별 요약 통계량 / 숫자형 데이터의 통계치 계산
            (count:데이터 개수 / mean:평균값 / std:표준편차 / min:최소값 / 4분위 수(25,50,75%) / max:최대값) 
 - data.dtypes : 데이터 형태의 종류(Data Types)

 

<데이터 추출하기>

- column 선택

Series 형태로 가져오기 -> 칼럼 한개만 가능

data['열 이름']

 

DataFrame형태로 가져오기 -> 여러 칼럼 가능 / 슬라이싱 가능

data[ ['열 이름'] ]

data[ ['열 이름', '열 이름', '열 이름'] ]

data[ 시작 열 번호 숫자 : 끝 열 번호 숫자] 

 

- row 선택

loc -> 인덱스 이름 기준으로 행 데이터 읽기

data.loc[ 인덱스 이름 ]

iloc -> 행 번호 기준으로 행 데이터 읽기 -> integer location

(몇번째 행)

data.iloc[ 인덱스 번호]

 

- row, column 동시에 선택

data.loc[ [ 인덱스 이름 ], [ 열 이름 ] ]

data.iloc[ [ 인덱스 번호], [ 열 번호 ] ]

 

- 컬럼 조건문으로 행 선택 (boolean selection 연산)

data[ (data['sex'] == 'M') & (data['age'] >=20) ]

 

조건 객체로 저장해서 표현 가능 

sex = data['sex'] == 'M'

age = data['age'] >=20

data[sex & age]

 

<열 추가 및 삭제>

column 추가

data['double_age'] = data['age']*2 

-> 기본적으로 연산된 열은 제일 뒤에 추가됨 

data.insert(10, 'double_age',  data['age'] * 2 )  -> 10번째 위치에 연산한 열 추가

-> 원하는 위치에 열 추가 

 

column 삭제

data.drop('age' , axis = 1, inplace = True)

axis -> 삭제 가로/행 (1) 세로/열(0)

inplace -> True - 원본 자체 지울때

원래는 데이터 지우고 다른 데이터 프레임에 저장해야함

data_drop = data.drop('age' , axis = 1)

728x90