[세션] Python 라이브러리&EDA

yeji·2024년 10월 21일
0

Python

목록 보기
7/36

SQL vs Python

  • SQL은 통으로, Python은 한줄한줄 실행

Library

  • 자주 쓰는 함수들을 모아놓은 묶음
  • 호출방법
import pandas as pd   # pandas 는 6 글자라서 pd 로 줄여 명령
import numpy as np
import time
from matplotlib.pyplot as plt

# from 구문은 라이브러리 중 특정 함수만 사용하고 싶을 때 사용
  • 주요 라이브러리

Pandas

  • 데이터를 다루기 위한 가장 기본적인 라이브러리
  • 데이터 형식이 달라도 모두 행과 열을 가진 이차원의 데이터 프레임(테이블)으로 변환해줌
  • 쉽게 연산이 가능해 데이터 핸들링에 최적화됨

EDA

  • DataFrame 활용하여 테이블 만들기
# pandas 라이브러리를 활용한 dataframe 만들기 - List 활용
data1 = [['Choi',22],['Kim',48],['Joo',32]]
df4 = pd.DataFrame(data1, columns=['Name','Age'])

# 결과 

  • 코드 요약
# pandas 라이브러리를 활용한 csv 파일 읽기 
df = pd.read_csv("xxxx.csv")

# 테이블 확인하기 
display(df, df2, df3)

# 처음 5 줄만 출력하기 
#df2.head()

# 마지막 5 줄만 출력하기 
#df2.tail()

# 각 테이블의 행(가로) 길이 파악하기
len(df)

# shape: 테이블의 행과 열의 갯수를 반환 
df.shape

# dtypes: 테이블 내 컬럼타입(문자형, 숫자형, 배열 등) 확인
df.dtypes

# columns: 테이블 내 컬럼 확인
df.columns

# values: 테이블 내 각 행들을 배열 형태로 확인
df.values

# 테이블 기본 구조 한눈에 확인하기
df.info()

# 전체 행 갯수, 평균, 표준편차, 최솟값, 사분위수, 최댓값 확인 
df2.describe()

#컬럼별로 결측치(데이터가 없는) 확인하기 
df.isnull().sum()

# 특정 컬럼 1개 가져오기
	#방법1: 속성. 사용
	df.Category
	
	#방법2: [] 연산자 사용
	df['Category']
	
	#방법3: iloc 사용
	# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번(카테고리)컬럼을 가져오겠다는 희미
	df.iloc[:,4]

# 특정 컬럼 여러개 가져오기 
	#방법1: [[]] 연산자 사용
	# []를 하나 사용하면 결과값이 series 형태로 반환되어 key error 가발생되며, [[]] 는 dataframe 으로 반환되어 에러가 나지 않습니다. 
	df[['Category','Selling Price']]
	
	#방법2: iloc 사용
	# : 은 모든 행을 가져오겠다는 의미이며 dataframe 의 인덱스 번호 4번,7번 컬럼을 가져오겠다는 희미
	df.iloc[:,[4,7]]
	
# 특정 컬럼 버리기
# axis=0 은 인덱스 기준, 1은 컬럼 기준 삭제를 의미 
# inplace=True 는 원본을 변경하겠다는 의미, False 의 경우 원본테이블은 변경되지 않음
df3.drop('Interaction type', axis=1, inplace=True)

# 조건에 부합하는 데이터 가져오기1
# 조건에 만족하는 행은 정상출력 ,아닌 행은 NaN 으로 반환 
df2.where(df2['Age']>50)

# 조건에 부합하는 데이터 가져오기2
# true, false의 개념이 아닌 조건에 부합하는 데이터만 슬라이싱하여 가져오고 싶을 때 
# mask 메서드로 불립니다. 이름은 반드시 mask 일 필요가 없습니다. 
mask = ((df2['Age']>50) & (df2['Gender']=='Male'))
df2[mask]

# 데이터 그루핑- 기준 1개
df2.groupby('Gender')['Customer ID'].count()

# 데이터 그루핑- 기준 여러개
df2.groupby(['Gender','Location'])['Customer ID'].count()

# 데이터 count 와 nunique(distinct, 중복제거) 차이 
df2.groupby('Location')['Age'].count()
df2.groupby('Location')['Age'].nunique()
profile
👋🏻

0개의 댓글