Day12_Python_11 : 현업사용 서머리 ‐ 핵심 - bonniekwon0721/Dataanalytics-study GitHub Wiki

21/Feb/2024


Python Cheat Sheet

01.데이터 핸들링

데이터 탐색 및 확인 (01-01)

  • 데이터 형태와 타입 확인: 데이터프레임의 형태(shape), 각 컬럼의 데이터 타입 및 전체 정보(info()), 결측치의 존재 유무와 개수(isnull().sum())를 확인합니다.

데이터의 유니크 값 분석 (01-02)

  • 유니크한 값 분석: 특정 컬럼의 유니크한 값들의 개수(len(df['col'].unique()))와 유니크한 값들을 확인합니다(df['col'].unique()).

데이터 전처리 (01-03 ~ 01-05, 01-12, 01-13, 01-14, 01-15)

  • 특정 값 치환: 특정 값(-200)을 결측치(NaN)로 치환합니다.
  • 결측치 처리: 결측치를 이전 값으로 채우거나(fillna(method='ffill')), 무한대 값을 결측치로 치환합니다.
  • 데이터 추출 및 정제: 필요한 컬럼만 선택하여 데이터프레임을 재구성하고, 중복 데이터를 제거합니다. 문자열 데이터에서 앞 공백을 제거하거나 날짜 데이터의 형식을 변경합니다.

데이터 필터링 및 정렬 (01-06, 01-07, 01-08, 01-09)

  • 조건에 맞는 데이터 필터링: 특정 조건을 만족하는 데이터를 필터링하고(df[ (df['T'] >= 25) & (df['T'] <= 27) ]), 특정 값이 포함된 데이터를 찾습니다.
  • 데이터 정렬: 특정 컬럼을 기준으로 데이터를 오름차순 또는 내림차순으로 정렬합니다.

데이터 집계 및 변환 (01-10, 01-11, 01-16)

  • 데이터 그룹화 및 집계: 특정 컬럼을 기준으로 그룹화하고, 각 그룹별로 데이터를 카운트합니다(groupby, value_counts).
  • 피벗 테이블 생성: 데이터를 재구성하여 피벗 테이블을 생성합니다(pivot_table).
  • 리스트 중복 제거: 리스트에서 중복된 요소를 제거하여 유니크한 값들만을 포함하는 집합을 생성합니다.

기타 데이터 변환 (01-13)

  • lag 데이터 생성: 특정 컬럼의 값을 한 칸씩 이동시켜 새로운 컬럼을 생성합니다(shift), 주로 시계열 데이터 분석에 활용됩니다.

02.데이터 시각화

02-01. 연속형 변수 분포 확인

  • Seaborn의 displot을 사용하여 연속형 변수의 분포를 확인하고, 변수의 평균값을 출력합니다. 이는 데이터의 분포와 중심 경향성을 파악하는 데 도움을 줍니다.

02-02. 그래프 크기 조절

  • Matplotlib의 gcf().set_size_inches를 이용하여 그래프의 크기를 조절합니다. 이는 시각화의 가독성을 향상시키는 데 유용합니다.

02-03. 산점도 그리기

  • Seaborn의 scatterplot을 사용하여 두 변수 간의 관계를 산점도로 표현하며, hue 매개변수를 통해 데이터의 하위 그룹을 색상으로 구분합니다.

02-04. 선 그래프 그리기

  • Matplotlib의 plot 함수를 이용해 기본 선 그래프를 그립니다. 이는 시간에 따른 변화나 두 변수 간의 관계를 시각화하는 데 적합합니다.

02-05. 다중 분포 그래프 출력

  • Matplotlib의 subplot과 Seaborn의 distplot을 활용하여 여러 변수의 분포를 한 화면에 다중으로 출력합니다. 이는 여러 변수를 동시에 비교하고 분석하는 데 유용합니다.

02-06. 이중 축 그래프 그리기

  • Matplotlib를 사용하여 두 데이터 세트를 서로 다른 y축을 가진 단일 그래프에 시각화합니다. 이 방법은 서로 다른 스케일을 가진 데이터를 비교할 때 유용합니다.

02-07. 산점도 행렬 그리기

  • Seaborn의 pairplot을 이용하여 데이터프레임 내 여러 변수 간의 모든 쌍에 대한 관계를 산점도 행렬로 시각화합니다. 이는 변수 간의 관계를 빠르게 파악하는 데 도움을 줍니다.

02-08. 히트맵으로 상관관계 분석

  • Seaborn의 heatmap을 사용하여 변수 간의 상관계수를 색상으로 표현하는 히트맵을 생성합니다. 이는 변수 간의 상관관계를 직관적으로 이해하는 데 도움을 줍니다.

02-09. 그래프에 선 추가 및 조절

  • Matplotlib를 활용하여 산점도에 수직선과 수평선을 추가하고, 선의 길이와 색상을 조절합니다. 이는 특정 기준을 시각적으로 표시하는 데 유용합니다.

02-10. 범주형 데이터 시각화

  • Seaborn의 catplot을 이용하여 범주형 데이터의 분포와 카테고리별 수치를 시각화합니다. kind 매개변수를 통해 다양한 형태의 그래프를 선택할 수 있습니다.

02-11. 조건에 따른 색상 입히기

  • NumPy의 where 함수와 Matplotlib의 bar 함수를 사용하여 특정 조건을 만족하는 데이터에 다른 색상을 적용합니다. 이는 데이터의 특정 특성을 강조하는 데 유용합니다.

02-12. 막대 그래프 그리기

  • Seaborn의 barplot을 사용하여 데이터의 평균과 범주별 값을 막대 그래프로 시각화합니다. order 매개변수를 통해 막대의 순서를 지정할 수 있습니다.

03.데이터 분석 및 모델링

03-01. Train/Test set 분할

  • 데이터를 학습용과 테스트용으로 분리하는 과정입니다. train_test_split 함수를 사용해 데이터셋을 분할하며, 분류 작업을 위해 stratify 옵션을 사용해 타겟 변수의 분포를 균등하게 유지합니다.

03-02. 모델 학습 및 예측

  • RandomForestClassifier를 사용하여 모델을 학습시키고, 학습된 모델을 이용해 예측을 수행합니다. 학습과 테스트 데이터 모두에 대한 예측을 진행하여 과적합 여부를 판별할 수 있습니다.

03-03. 이진분류 모델 성능 확인

  • classification_report 함수를 사용하여 이진 분류 모델의 성능을 평가합니다. 정밀도, 재현율, F1 점수 등 다양한 평가 지표를 제공합니다.

03-04. 하이퍼 파라미터 튜닝

  • GridSearchCV를 활용해 랜덤 포레스트 모델의 최적 하이퍼파라미터를 찾는 과정입니다. n_estimatorsmax_depth 등을 조정하여 모델 성능을 최적화합니다.

03-05. 중요 변수 파악(Feature Importance)

  • 학습된 랜덤 포레스트 모델을 기반으로, 피처의 중요도를 시각화합니다. 가장 영향력 있는 변수를 파악할 수 있습니다.

03-06. 모델 Save & Read

  • pickle 모듈을 사용하여 학습된 모델을 저장하고, 저장된 모델을 다시 불러오는 과정입니다.

03-07. 상관계수 값 출력

  • scipy.statspearsonr 함수를 이용해 두 변수 간의 피어슨 상관계수를 계산합니다.

03-08. Regressor(회귀) 모델 학습 및 평가

  • RandomForestRegressor를 사용하여 회귀 모델을 학습하고 평가합니다. 평가 지표로는 평균 절대 오차(MAE), 평균 제곱근 오차(RMSE), 결정 계수(R²) 등을 사용합니다.

03-09. 표준화 및 PCA 차원축소

  • StandardScaler로 데이터를 표준화하고, PCA를 이용해 차원을 축소하는 과정입니다. 이는 고차원 데이터를 저차원으로 변환하여 시각화하거나 계산 효율성을 높이기 위해 사용됩니다.

03-10. 선형회귀활용 모델링

  • LinearRegression을 사용하여 선형 회귀 모델을 학습하고 평가하는 과정입니다. 회귀 모델의 성능을 평가하기 위한 지표로는 MAE, RMSE, R² 등이 사용됩니다.

03-11. 선형회귀 상관계수 확인

  • 학습된 선형 회귀 모델의 계수(coef_)를 확인하여 각 변수의 영향력을 파악합니다.

03-12. LightGBM 활용 모델링

  • 경량화된 그래디언트 부스팅 머신, LightGBM을 사용하여 분류 모델을 학습하고 예측하는 과정입니다. 모델의 성능을 평가하기 위해 분류 보고서를 출력합니다.

03-13. 연속형, 범주형 변수 list 나누기

  • 데이터프레임 내 변수를 연속형과 범주형으로 분류하는 과정입니다.

03-14. AUROC score 출력하기

  • ROC 곡선 아래 면적(AUROC)을 계산하여 모델의 분류 성능을 평가합니다.

03-15. Label Encoder 활용 범주형 데이터 처리

  • LabelEncoder를 사용하여 범주형 변수를 숫자형으로 변환하는 과정입니다. 모델 학습을 위해 필요한 전처리 단계입니다.

03-16. ROC 커브 그리기

  • 실제 값과 예측 확률을 기반으로 ROC 커브를 그리고, 모델의 성능을 시각적으로 평가하는 과정입니다.

03-17. Min-Max Scale 활용 정규화

  • 데이터의 특성을 [0, 1] 범위로 정규화하는 Min-Max Scaling 과정입니다. 데이터의 스케일을 조정하여 모델의 학습 효율성을 높이기 위해 사용됩니다.

Studied from 제로베이스 데이터 스쿨