🤔 행 열 이름 바꿔야 할 때는
rename ()
mapper
: 변경할 {레이블명 : 값} 입니다. dict나 함수형태가 올 수 있는데, 축이 지정되어있지 않으므로 axis인수와 함께 사용해야 합니다.
axis
: mapper의 변경값이 적용될 축 입니다.
index
, columns
: 변경할 {레이블명 : 값}입니다. 미리 축을 지정하기 때문에 axis인수와 병행사용할 수 없습니다.
copy
: 사본을 생성할지 여부입니다.
inplace
: Pandas 공통 인수인 inplace는 원본을 수정할지의 여부를 지정합니다.
level
: Multi Index의 경우 레벨을 지정해줍니다.
errors
: {'ignore' / 'raise'} mapper, index, columns에서 지정한 dict에 해당하는 key값이 없을경우, 오류를 발생시킬지 여부 입니다.
.
.
.
🤔 인덱스를 열로 변환할 때 (재설정하는 것 외에도!)
reset_index ()
level
: Multi Index의 경우 제거할 인덱스의 레벨을 설정할수 있습니다. 기본적으로 모든 레벨입니다.
drop
: 제거한 인덱스를 열에 추가할지 여부입니다. 기본값은 False로 제거된 인덱스는 열로 변환됩니다.
inplace
: pandas 공통 인수로, 원본을 변경할지 여부 입니다.
col_level / col_fill
: Multi Index의 경우 제거된 인덱스를 열에 추가할 때 레벨과 열의 이름을 설정할 수 있습니다.
col_level을 통해 레벨을 설정하고, col_fill을통해 해당 열의 이름을 정합니다.
❗ 멀티인덱스를 제거할 수 있음! pivot table에서 멀티인덱스 해체 가능
.
.
.
.
🤔 전처리 시 띄어쓰기 제거해야할 때는
replace( )
예)
df_target['시설명'] = df_target['시설명'].str.replace(" ", "")
문자열이라면 그냥 replace를 적용해도 되지만, Series인 경우에는 반드시 str을 붙여줘야 작동한다.
.
.
.
🤔 특정한 문자열이 포함되어있을 때는
contains( )
예)
df_target[df_target['시설명'].str.contains('휴관')
🤔 문자열을 나누고 싶을 때는
split( )
.
.
.
🤔 중복 값을 구할 때는
duplicated( ) : 중복 행 확인
문법 : df.duplicated(subset=None, keep='first')
subset
: 특정 열만을 대상으로 할 수 있습니다. list의 사용도 가능합니다.
keep
: {first : 위부터 검사 / last : 아래부터 검사} 검사 순서를 정합니다. first일 경우 위부터 확인해서 중복행이 나오면 True를 반환하며, last일 경우 아래부터 확인합니다
행의 모든 요소가 동일한 행이 존재할 경우에 True 반환
예)
duplicates = df.duplicated(subset='col_', keep=False)
🤔 중복 값을 삭제하고 싶을 때는
drop_duplicates( )
subset
: 중복값을 검사할 열 입니다. 기본적으로 모든 열을 검사합니다.
keep
: {first / last} 중복제거를 할 때 남길 행입니다. first면 첫값을 남기고 last면 마지막 값을 남깁니다.
inplace
: 원본을 변경할지의 여부입니다.
ignore_index
: 원래 index를 무시할지 여부입니다. True일 경우 0,1,2, ... , n으로 부여됩니다.
예)
duplicates = df.duplicated(subset='시설명_띄어쓰기_삭제', keep=False)
df['소재지도로명주소'].split(" ")[0]:
이 구문은 일반적인 문자열 메서드인 split을 사용하고 있습니다. 그러나 DataFrame의 열은 문자열이 아니라 시리즈(Series)이기 때문에, 문자열 메서드를 직접 사용할 수 없습니다.
따라서 이 구문은 AttributeError를 발생시킬 것입니다.
df['소재지도로명주소'].str.split(" ")[0]:
이 구문은 판다스(Pandas)의 문자열 메서드 중 하나인 str을 사용한 후 split 메서드를 적용하고 있습니다. str 메서드를 사용하면 시리즈 내의 각 문자열에 대해 문자열 메서드를 적용할 수 있습니다.
이 구문은 각 행의 '소재지도로명주소' 열 값을 먼저 공백을 기준으로 나눈 후에 그 결과 중 첫 번째 값을 선택합니다. 이 때 [0]은 리스트에서 첫 번째 원소를 선택하는 인덱싱을 나타냅니다.