반응형
제로베이스 데이터 분석 스쿨 내용에 대한 기록이다.
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()
반응형
'데이터분석 교육 (제로베이스)' 카테고리의 다른 글
[스터디 노트] 13번째 선형대수 (240927), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.09.27 |
---|---|
[스터디 노트] 12번째 파이썬 분석 기초 (240926), 제로베이스 데이터 분석 스쿨 내용 (1) | 2024.09.26 |
[스터디 노트] 10번째 파이썬 분석 기초 (240924), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.09.24 |
[스터디 노트] 9번째 파이썬 분석 기초 (240919), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.09.19 |
[스터디 노트] 8번째 git (240918), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.09.18 |