본문 바로가기

[Python]

[Python] 빅데이터분석기사 실기 연습(작업형1)

# pandas 활용

df[컬럼명].quantile(.범위)

# numpy 활용

np.percentile(df[컬럼명], 범위)

IQR = Q3 - Q1

 

import numpy as np

# 올림: np.ceil()

# 내림: np.floor()

# 버림: np.trunc()

cf) 내림과 버림의 차이는? 

- 양수에서는 같지만 음수 -5.5에서 내림을 하면 -6, 버림을 하면 -5가 된다.

 

# city별 중앙값으로 대체에서는 map함수 활용

# 결측값 확인: df.isnull().sum()

# 컬럼 삭제: df.drop(컬럼명1, 컬럼명2, axis=1)

                     df.drop(columns=컬럼명1, 컬럼명2)

# 컬럼 확인: df[컬럼명].unique()

# 결측치 채우기: fillna()

# 그룹별: df.groupby()

# 데이터 타입 확인: df.shape

 

# 왜도 -> df.skew()

오른쪽 꼬리 -> 왜도>0, 최빈값<중앙값<평균

왼쪽 꼬리 -> 왜도<0, 평균<중앙값<최빈값

# 첨도 -> df.kurt()

3보다 작을 경우 꼬리가 얇고

3보다 클 경우 꼬리가 두꺼움

 

# loc로 특정 행 선택 이후 평균 구하기

m2001 = df.loc[2001].mean()

# 평균 값 보다 큰 값 구하기 > cond1으로 조건
cond1 = df.loc[2001] > m2001

# cond1 조건에 Frue 개수 구하기
r1 = sum(cond1)

 

* loc -> 인덱스 명을 찾아서 행의 값 추출

* iloc(integer location) -> n번재 행에 있는 값 추출

 

# 특정 컬럼 컬측치 채우기

앞 방향 - fillna(method='ffill' or 'pad')

뒷 방향 - fillna(method='bfill' or 'backfill')

 

# 그룹별 합산 값 구하기, 인덱스 재설정

df = df.groupby(['city','f2']).sum().reset_index()

 

# 특정 컬럼 값들 내림차순, 오름차순

오름차순(기본): df = df.sort_values(['views'], ascending=True)

내림차순: df = df.sort_values(['views'], ascending=False)

 

# 차순 멀티 지정 (내림차순, 오름차순)  

df.sort_values([컬럼명1, 컬럼명2], ascending=[True, False])

 

# 특정 컬럼 datetime으로 변환

pd.to_datetime()

 

# datetime의 해당 년/월/일/요일 분리하기                * 조심! df아니고 dt , ()없음

df[subscribed'].dt.year

df[subscribed'].dt.month

df[subscribed'].dt.day

df[].dt.dayofweek   * 0~6(월~일)

 

# 월별 데이터 개수 구하기

df = df.groupby('month').count()

 

# 오름차순(기본)이후 가장 적은 데이터가 개수가 있는 행

df.sort_values('month').index[0]  << 함수 안에 컬럼 명만!

 

오답노트

# 결측값 들어있는 모든 행 제거

df = df.dropna(axis=0)

 

# 결측값 들어있는 모든 열 제거

df = df.dropna(axis=1) 

 

# 특정 컬럼 결측치 행 제거

방법1: df = df.dropna(subset=['컬럼명']) 

방법2: df[~df['f1'].isnull()]

 

# loc 멀티 인덱싱    *조심 - 멀티 인덱싱은 ()중괄호

df.loc[(행1, 행2), 열]

 

# 특정 컬럼 데이터 대체

data = data.repalce(기존값, 대체값)

 

# 특정 컬럼 누적합계산

df[].cumsum()

 

# 중앙값 계산

df[].median()

 

# 수치형 변수 표준화 (기본)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

df[]  = scaler.fit_transform(df[[]])                * 중요: fit_transform 할 때 df[[]] 대괄호 두번!!  

 

# MinMaxScaler

StandardScaler 와 동일!

 

# 시리즈(배열) 조건문 사용

np.where(condition, x, y)

condition = 조건

x = Ture인 경우 사용될 값, 배열

y = False인 경우 사용될 값,  배열

 

# 테이블 병합

pd.merge(left, right, on='기준 컬럼')

 

# dt 시간/분/초

초로 변환: dt.total_seconds()

분으로 변환: dt.total_seconds() / 60

시간으로 변환: dt.total_seconds() / 60 / 60

일로 변환: dt.total_seconds() / 60 / 60 / 24

'[Python]' 카테고리의 다른 글

[Python] 빅데이터분석기사 기초 통계  (1) 2023.10.26
[Python] 빅데이터분석기사 실기 연습(작업형2)  (0) 2023.10.18
[Python] 통계 기본 정리  (0) 2023.04.03
[Python] pandas 기본  (0) 2023.03.09
[Python] Numpy 기본  (0) 2023.03.06