티스토리 뷰
큰일이다. 수업이 너무 어려웠다.
코드박사가 될 때까지 죽어라 연습하는게 목표였는데
그냥 코 박고 죽게 생겼다..
처음부터 끝까지 하기에는 시간이...항상 부족하니
몇 가지 꼭!!! 익힐 것만 추려서 익히고 떠나야겠다.
#1) 데이터 전처리 !! (목표 : 금주 과제를 통해 완전히 익히기 !! )
- 데이터(파일) 불러오기 : pd.read_csv('~~.csv'), glob('~~/*.csv')
- 결측치 제거하기 : df.drop_duplicates()
- 요약정보 확인하기 : df.info()
- 컬럼별 결측치 개수 구하기 : df.isnull().sum()
- 사용할 컬럼만 꺼내기 : df.columns = [ ]
근데 cols=[ ]로 먼저 묶어주고, df[cols].copy() 하여 깊은복사 해주는게 더 좋음. - 특정 컬럼의 결측치 제거하기 : df = df[df["컬럼명"].notnull()].copy()
- 특정 컬럼의 유일값 개수 구하기 : df["컬럼명"].nunique()
- 특정 내용이 있는 행 출력하기 : list = ['내용리스트'] , df[df["특정컬럼"].isin(list)]
#2) crosstab(), pivot_table(), groupby() 마스터하기 !
※ DataFrame 예시
여기 'students'라는 이름을 가진 데이터 프레임이 있다.학급별 남,녀 인원수를 'gender' 데이터프레임으로 만들어 보겠다.
1. crosstab() 사용하기
gender = pd.crosstab(
index=students['학급명'],
columns=students['성별'])
gender["합계"] = gender.sum(axis='columns')
gender
- '합계' 컬럼을 sum으로 따로 만들어주지 않고 margins를 이용해서 쉽게 만들 수도 있다.
- margins는 각 행과 열의 총합을 계산해준다.
gender = pd.crosstab(
index=students['학급명'],
columns=students['성별'],
margins=True, margins_name="합계")
gender
2. pivot_table() 사용하기
gender = students.pivot_table(
index='학급명',
columns='성별',
values='이름',
aggfunc='count',
fill_value=0,
margins=True, margins_name="합계")
gender
3. groupby() 사용하기
gender = students.groupby(
['학급명', '성별'])['이름'].count().unstack().fillna(0).astype(int)
gender["합계"] = gender.sum(axis=1)
gender
- unstack() : 나열된 정보들을 칸에 정리해서 넣어줌.
'TIL & WIL > Python' 카테고리의 다른 글
8주차 WIL. folium.Map (0) | 2023.02.09 |
---|---|
8주차 수요일 TIL(2). heatmap, style.background_gradient() / concat(), pd.merge (0) | 2023.02.09 |
8주차 화요일 TIL. sns.heatmap / melt / 정규표현식 (0) | 2023.02.07 |
8주차 월요일 TIL. (0) | 2023.02.06 |
7주차 WIL. matplotlib의 기본 (0) | 2023.02.02 |