본문 바로가기
데이터분석 교육 (제로베이스)

[스터디 노트] 11번째 파이썬 분석 기초 (240925), 제로베이스 데이터 분석 스쿨 내용

by davidlds 2024. 9. 26.
반응형

제로베이스 데이터 분석 스쿨 내용에 대한 기록이다.

11번째는 파이썬 분석 기초 강의이다.

 

수업이 반복되고 있어서 적응이 조금 되고 있다.

ADsP 내용이 매우 많다. (6시그마... 읍읍)

 

[Apply와 Map]

  • 매핑이 간단하면 map-람다 사용
  • 조건이 복잡해지면 함수 선언하고 apply 사용
  • 딕셔너리로 매핑
    • map 함수 사용
    • 람다함수 사용
    • df['mapped_col'] = df.col1.map(lambda x: dic[x])
    • apply 함수 사용
    • 함수 하나 선언해서 사용하는 것
    • df['mapped_col'] =df.col1.apply(changeCategory)
  • 구간 컬럼 정의 후 카운트
    • 매핑 후 카운트
    • df['ages'] = df.col1.map(lambda x: x//10 *10)
    • df_ans = df['ages'].value_counts().sort_index()

[Time series]

  • 시계열 데이터 다루기
  • 타입 조회 시 datetime64로 표시
  • 스트링에서 datetime 타입으로 변경
    • to_datetime 함수 사용
    • df.col1 = pd.to_datetime(df.col1)
  • 년도의 유니크값 모두 출력
    • dt.year 함수 사용
    • unique 함수도 사용
    • df_ans = df.col1.dt.year.unique()
  • 요일별로 매핑
    • 월요일:0 ~ 일요일:6
    • dt.weekday 함수 사용
    • df['weekday'] = df.col1.dt.weekday
  • 년도-월 기준으로 평균값
    • 1995-11 처럼 형태 변경
    • dt.to_period('M') 함수 사용
    • df_ans = df.groupby(df.col1.dt.to_period('M')).mean(numeric_only=True)
  • 일주일 간격 이동평균
    • rolling 함수 사용
    • 데이터 개수 적어서 간격 설정 가능
    • df_ans= df[['RPT','VAL']].rolling(7).mean()
  • 영어 요일 나타내기
    • dt.day_name 함수 사용
    • df['weekday'] = df.col1.dt.day_name()

[Pivot]

  • pivot
    • pivot 함수 사용
    • index, columns, values 3가지 파라미터
    • 인덱스가 세로축, 컬럼이 가로축, values가 값
    • col1에 따른 col2별 col3의 값을 구하라.
    • df_ans = target.pivot(index='col1',columns='col2',values='col3')
    • col3의 평균
    • df_ans = target.pivot(index='col1',columns='col2',values='col3',aggfunc='mean')
  • values가 없을 때 pivot
    • pivot_table 함수 사용
    • col2의 갯수
    • df_ans = target.pivot_table(index='col1',columns='col2',aggfunc='size').fillna(0)

[Concat, Merge]

  • 위아래 좌우로 합칠 때는 concat
  • join의 개념을 사용할 때는 merge
  • concat
    • concat 함수 사용
    • axis, 0은 행 기준인 위아래, 1은 열 기준인 좌우
    • axis 기본값은 0
    • df_ans = pd.concat([df1,df2], axis=0)
  • 둘 다 있는 컬럼만 concat
    • join='inner' 사용
    • df_ans = pd.concat([df3,df4], join='inner')
  • 모든 컬럼 concat
    • join='outer' 사용
    • 없는 값은 null로 채워짐
    • df_ans = pd.concat([df3,df4], join='outer').fillna(0)
  • 한 컬럼을 키로 사용해 merge
    • merge 함수 사용
    • on 파라미터로 키 설정
    • df_ans = pd.merge(df5,df6,on='col1',how='inner')
    • df_ans = pd.merge(df5,df6,on='col1',how='outer').fillna(0)

[Statistics 기초 통계값]

  • 컬럼의 갯수 세기
    • value_counts 함수 사용
    • df['names'].value_counts()
  • 유니크값 갯수 세기
    • df['names'].nunique()
  • 가장 많이 등장하는 값
    • names[names.Count == names.Count.max()]
  • 중앙값
    • names[names.Count == names.Count.median()]
  • 표준편차
    • names.Count.std()
  • 기초 통계값
    • names.describe()

깃허브 링크

 

깃허브 파이썬 분석 공부 부분 링크

 

반응형