데이터 분석 TIL - 라이브러리와 EDA(%%time, isna, iloc, groupby 등)

테리·2025년 11월 14일

1. 학습 키워드

  • 라이브러리와 EDA
    %%time, isna(), iloc, groupby()

2. 학습 내용

EDA

탐색적 데이터 분석

  • 이상치
  • 결측치
  • 시각화

주요 라이브러리

  • pandas: 데이터프레임을 만들 때 사용
  • numpy: 리스트를 확장한 다차원 배열을 제공하며 통계 분석을 지원함.
  • matplotlib, seaborn: 시각화 라이브러리. seaborn이 조금 더 다채롭게 시각화 구현 가능함.
  • PyGWalker: Kanaries에서 배포한 태블로 스타일의 파이썬 패키지. 움직이는 시각화 가능
    ex) import pygwalker as pyg
  • SciPy: 통계 계산

소요시간 측정 방법

주피터 노트북에서 지원하는 매직 커맨드로 셀 가장 상단에 작성해야함.
CPU time: CPU가 코드를 실행하는데 걸리는 시간
Wall clock time: 실제 코드 실행 시간

  • %time 뒤에 나오는 한줄 커맨드 소요시간
  • %timeit 뒤에 나오는 한줄 커맨드 반복수행후 (iteration) 평균 소요시간
  • %%time 뒤에 나오는 셀 전체 수행 후 소요시간
  • %%timeit 뒤에 나오는 셀 전체 수행 후 평균 소요시간
%%time 
sum=0
for x in range(10000000) :
    sum=sum+x

print("1부터 1000만까지 합 :",sum)

EDA를 위한 간단한 기능

결측치 확인

df.isna().sum()
df.isnull().sum() # 동일한 기능

특정 컬럼 여러개 가져오기

# 두개는 동일한 실행 결과
df[['Category','Selling Price']]
df.iloc[:,[4,7]] # 전체 행, 열은 4번째 7번째 열 선택

중복값 제거

# 중복 제거하고 고유값만 리스트
df2.groupby('Location')['Age'].unique()
# 중복 제거하고 고유값만 계산하기
df2.groupby('Location')['Age'].nunique()

조건에 부합하는 데이터 가져오기(마스크 매서드)

  • where() 사용
# 조건에 만족하는 행은 정상출력 ,아닌 행은 NaN 으로 반환 
df2.where(df2['Age']>50)

  • 마스크 매서드
# 조건에 부합하는 데이터만 가져오고 싶을 때 
mask = ((df2['Age']>50) & (df2['Gender']=='Male')) # 마스크 매서드
df2[mask]

정렬

df2.groupby('Location')['Age'].count().sort_values(ascending=False)

필수 외우기

groupby()

ex)
df2.groupby('Gender')['Customer ID'].count()
df2.groupby(['Gender','Location'])['Customer ID'].count()

3. 배운점

  1. %%time에 대해서 알게됐다. 가끔씩 사용하는 코드를 보긴 했는데 나중에 모델학습시에 잘 사용할 수 있을 것 같다.
  2. groupby() 사용시 종종 작성 방법을 잊어버리는 경우가 있는데 꼭 기억하고 있어야 겠

0개의 댓글