ssung_인턴일지

5, 6일차_Data Preprocessing

ssungcohol 2024. 7. 7. 22:55

데이터 전처리

문제 상황

  • '차로' data 추출
    • 사고 내용에 사고가 발생한 차로를 추출하려고 하니, 사고 내용에 '교차로' 단어 존재...
      • 문제 해결 -> 'find' 함수가 아닌 'rfind' 함수를 사용해 뒤에서부터 찾기
        (find 함수 전에 're' 라이브러리를 사용하려고 했던건 안비밀)
    • 첫 벌째 사고 내용에서 발견된 차로 data를 전체 column에 입력하는 문제 발생
def road_index(df):
	find_word = '차로'
    
    if find_word not in str(df['돌발내용']):
    	road_index = 0
    else:
    	word_index = str(df['돌발내용']).find("차로")
        road_index = str(df['돌발내용'])[word_index - 2 : word_index].lstrip()
        
    df.insert(8, '차로, road_index)
    
    return df

 

위 코드의 문제점

  • data가
    '주공로 별님어린이집 예원유치원 진행방향 전체차로 횡단보도 도색작업 도로공사 반대 차선 확인 요망’
    '지방도1132호선 수모루교차로 용당교차로 3차로 주의운전 도로공사 -’
    이렇게 있을 때, 차로 column 전체에 ‘3’으로 입력되는 문제 발생
  • 원인_1
    • 위의 코드는 ['돌발내용'] 을 문자열로 변환하여 전체 df에 대해 검색하는 코드!
    • 이를 각 행별로 처리할 수 있게 수정이 필요
  • 해결_1
def road_index(df):
	if '차로' in df:
    	word_index = df.rfind("차로")
        road_index = df[word_index - 2 : word_index].lstrip()
        
        if road_info is not None:
        	return road_info
        else :
        	return '0'
        
    df.insert(8, '차로', df['돌발내용'].apply(road_index))
    return df

 

위 코드의 문제점

  • 'X차로' 내용이 없으면 모든 데이터가 지워지는 현상 발생...
728x90

'ssung_인턴일지' 카테고리의 다른 글

8일차_Data Preprocessing(3)  (0) 2024.07.11
7일차_Data Preprocessing(2)  (0) 2024.07.08
4일차_Data preprocessing  (0) 2024.07.07
3일차_YOLOv7, v8  (0) 2024.07.07
2일차_Image Labeling  (0) 2024.07.02