파이썬의 pandas로 데이터 정리를 하던 중, 아래와 같은 조건 명령어를 사용하고 싶었다.
'광고이름'이라는 열에 'mobile'이라는 문자가 포함되어 있으면,
'기기종류' 열에 '모바일'이라고 입력하라.
사용자에게 노출된 광고가 모바일용이냐 PC용이냐를 구분하고 싶었다. '광고이름' 열에 해당 정보가 있긴 했지만 다른 정보와 뒤섞여 있는 것이 문제였다. '음악광고_mobile_203984382_300x250' 같은 식으로 되어있는 문자에서 'mobile' 부분만 가져와 한국어인 '모바일'로 치환하고 싶었다.
pandas의 DataFrame에 if를 어떻게 집어넣어야 하나 혼란스러웠는데, 검색해보니 if를 사용하지 않아도 가능했다.
import panads as pd
df = pd.DataFrame(data = file)
df.loc[df['광고이름'].str.contains('mobile'), '기기종류'] = '모바일'
참고로 "문자가 포함되어 있으면"이 아닌 "문자가 포함되어 있지 않으면"을 조건으로 걸고 싶은 경우, 명령어 안에 물결 표시(~)를 붙이면 된다.
import panads as pd
df = pd.DataFrame(data = file)
df.loc[~df['광고이름'].str.contains('mobile'), '기기종류'] = '모바일'