1. 기초 함수
1) 데이터 구조 확인
- df.head()
- df.tail()
- df.describe() : 대표값(평균, 중위값, 최빈값), 개수, 분산, 표준편차의 사분위수(quantile)
- df.info() : Column별로 Non-Null Count & Dtype
2) index 변경, 초기화
- df.set_index('index_name', inplace=False, drop=True) # 기존 인덱스를 변경하려면 inplace=True
- df.reset_index()
3) 특정 행/열 기준으로 정렬
# df.sort (X)
# df.sort_index 또는 df.sort_values (O)
- df.sort_values(by=' ', axis=0, ascending=True, inplace=False, ignore_index=False)
4) 특정 문자 포함하는 행/열 세기
- sum(df["travel"].str.contains("계곡")) # 여행지에 '계곡'이 있는 곳 count
5) 열 이름 변경
# 전체 열 이름 다시 적어주기
- df.columns = [ '전체 열 이름 적어주기' ]
# 특정 열 이름만 변경
- df.rename(columns = {'from1':'to1', 'from2':'to2', ..., inplace=True} # inplace=True로 설정해야 덮어써짐
2. 특정 행/열 선택 및 삭제

### pd.Series가 아닌 pd.DataFrame으로 꺼내는 습관 들이기 [[ ]]
# pd.Series : 하나의 열 or 행으로 가져온다. (key 값이 있는 리스트 형식)
특정 행/열 선택
### 1) 행(row) 선택
df.loc[['bear']] / df.loc[['bear', 'wasp' ,'wolf']]
# index 행으로 선택 (index X)
# 0행/ 0,2,5행 / 3,4,5,6,7행 출력
# 권장하지 않음
df.iloc[[0]] / df.iloc[[0,2,5]] / df.iloc[[3:7]]
### 2) 열(column) 선택
df.loc[:, ['feathers']] / df.loc[:, ['feathers', 'airborne', 'toothed']]
# index로 선택
df.iloc[[:, 0]] / df.iloc[:, [0,2,4]]
### 3) 특정 행, 열 선택
df.loc[3]['hair']
df.iloc[3:5, 0:3]
특정 행/열 삭제
# 1) 행(row) 삭제
df.drop(['row']) # axis parameter 값을 조정하면 열도 삭제 가능
# 2) 열(column) 삭제
del df['column'] : 해당 열 데이터를 drop # dict와 같은 방식
# df.drop(columns=[ ], axis=1) 이 방법도 가능함
특정 행/열 필터링
df[ df['관서명'] != '계' ].describe()
하나의 Cell의 값 선택
# DataFrame에서 하나의 Cell에 해당하는 값을 얻어내는 4가지 방법
df['amount'][0] # 열에 접근 후 Series의 index로 접근
df.loc[0]['amount'] # 행에 접근 후 Series의 index로 접근
df.loc[0, 'amount'] # 행 이름과 열 이름을 지정하여 접근 (loc 활용)
df.at[0, 'amount'] # 행 이름과 열 이름을 지정하여 접근 (at 활용)
df.iloc[0, 7] # indexed-location 기반으로 index number 기준 행 & 열 지정하여 접근
3. hist()
- 한 번에 모든 변수에 histogram을 그리는 것도 가능하다
df.hist(bins=50, figsize=(20,15))

4. pivot_table
- 특정 열(column)을 index로 하는 새로운 df를 만드는 방법 ('축'을 돌리는 것)
- pd.pivot_table(data, index, aggfunc=np.mean)
- aggfunc : np.mean, np.max, ...
- np.mean: index에 따라 나누어지는 비율에 관계 없이 평균값을 구해주기 때문에 주로 쓰임

pivot_df = pd.pivot_table(df_new, index='type', aggfunc=np.sum)
pivot_df

5. 결측치(missing data)를 다루는 대표적인 방법
- 랜덤하게 채워넣기
- 주변 (행의) 값들로 채워넣기
- 열의 대푯값을 계산해서 채워넣기 (mean, median중윗값)
- 전체 행들을 그룹으로 묶어낸 후 그룹 내 해당 열의 대푯값으로 채워넣기
- 나머지 열들로 머신러닝 예측모델을 만든 후 해당 열의 값을 예측해 채워넣기
- 특정 기준 비율 이상으로 빠져있을 시 해당 열 삭제
'멋쟁이 사자처럼 AI SCHOOL 5기 > Today I Learned' 카테고리의 다른 글
| [2주차 총정리] 데이터프레임에서의 Masking과 Filtering (0) | 2022.03.23 |
|---|---|
| [2주차 총정리] pandas 유용한 함수 (apply, lambda, map 함수) 총정리 (0) | 2022.03.22 |
| [2주차 총정리] Python 초보자를 위한 class 기초 총정리 (0) | 2022.03.22 |
| [2주차 총정리] open 함수 이용하여 텍스트 파일(.txt, .csv, ...) 읽고 쓰기 (+ pickle과의 차이점) (0) | 2022.03.22 |
| [2주차 총정리] Python 반복문 유용한 기능(enumerate, zip, tqdm) 및 함수(Counter) 총정리 (0) | 2022.03.21 |