UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte
df = pd.read_csv(PATH , encoding='cp949')
출처: https://jonhyuk0922.tistory.com/232
DataFrame.duplicated(subset=???, keep='???')
출처: https://bramhyun.tistory.com/66 [日日新又日新:티스토리]
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)
subset: 중복값을 검사할 열
keep: {first / last} 중복제거를할때 남길 행
ignore_index: 원래 index를 무시할지 여부입니다. True일 경우 0,1,2, ... , n으로 부여됩니다.
출처: https://wikidocs.net/154060
조건1: 각 Row(행) 중 ['사용월', '호선명', '지하철역'] 의 내용이 모두 똑같은(중복되는) Row(행)이 있다면 가장 앞의 Row(Index가 가장 낮은 Row(행))에 ['유임승차인원', '무임승차인원', '유임하차인원', '무임하차인원'] 각각 합한 값을 입력하고, 나머지 ['사용월', '호선명', '지하철역'] 의 내용이 중복되는 Row(행)를 삭제하세요.
df_target1_copy[['유임승차인원', '무임승차인원', '유임하차인원', '무임하차인원']] = df_target1_copy.groupby(['사용월', '호선명', '지하철역'])[['유임승차인원', '무임승차인원', '유임하차인원', '무임하차인원']].transform('sum')
# # 중복행 첫 행만 남기고 제거
df_target1_copy.drop_duplicates(subset=['사용월', '호선명', '지하철역'], keep='first', inplace=True)
# '호선명' 킬럼 값이 '9호선2단계'인 경우 - 205개
df_target_copy.loc[df_target_copy['호선명'] == '9호선2단계', '호선명'] = '9호선'
# '호선명' 킬럼 값이 '9호선2~3단계'인 경우 - 559개
df_target_copy.loc[df_target_copy['호선명'] == '9호선2~3단계', '호선명'] = '9호선'
예시: '청량리(서울시립대입구)' -> '청량리'
str.contains('\(|\)')
r"(.)"
=>
r: Raw string을 나타냅니다. 이것은 백슬래시()를 특별 문자가 아닌 문자로 취급하게 합니다. 파이썬에서 정규 표현식을 사용할 때 주로 쓰입니다.
(.)
(: 여는 괄호
.*: 어떤 문자나 문자열이든(줄 바꿈 문자를 제외한 모든 것) 0개 이상 반복을 의미
): 닫는 괄호