근자감 민아, 자신감의 근거 찾기!
안녕하세요, /*elice*/
서포터즈 1기 민아입니다.
지난 포스팅에서 저는 제가 생각하는 것을 코드로 표현하는 속도가 빨라졌다고 했습니다.
하지만, 처음부터 말씀드렸듯이 저의 자신감엔 근거가 전혀 없었습니다.
그래서 이번엔 저의 자신감이 사실인지 확인해보기 위해 파이썬 레벨 테스트를 풀어보았습니다!
물론, 아직 초급 수준인(..) 1단계의 문제에서도 막힘이 있었습니다.
하지만 생각보다 빠른 시간 내에 문제들을 풀어볼 수 있었습니다!
저의 자신감은 기분 탓이 아니었다는 게 어느 정도 증명이 되었을까요?
아직.. 제가 너무 낙관적인 걸까요?
이 자신감에 박차를 가하기 위해 항상 부족함을 느끼던 데이터 분석에 대한 수업을 수강했습니다.
수업 링크: https://academy.elice.io/courses/283/lectures/all
1주차 내용은 트럼프 대통령 트윗으로 문자 데이터 전처리의 기본적인 함수를 다루어보는 수업이었습니다.
지금부터 정말 간단하지만 유용하게 사용하시게 될 함수들을 소개해드릴게요!
1. for문을 이용해 리스트 요소에 접근하기
아주 익숙하고 기본적이고 지금까지도, 앞으로도 계속 이용하게 될 내용입니다.
for문에 in 키워드를 이용하면 리스트의 원소 하나하나에 접근할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
출력결과
1
2
3
4
5
추가로, 개인적으로 많이 쓰는 함수인 enumerate()
를 이용하면 인덱스와 원소를 한번에 반환받을 수 있습니다!
name = ['mina', 'seol', 'zoo']
for idx, elem in enumerate(name):
print(idx, ':', elem)
출력결과
0 : mina
1 : seol
2 : zoo
2. 인덱스를 이용해 단어의 일부분 가져오기
python의 문자열은 리스트처럼 인덱스를 이용해 단어의 일부분을 가져올 수 있습니다.
알고 계시듯이, 인덱스는 0
부터 시작하며 -1
은 문자의 맨 마지막 요소를 의미합니다.
hello = 'Hello, elice'
print(hello[7:])
출력결과
elice
3. startswith()
startswith()
함수는 단어의 첫 글자를 확인해주는 함수입니다.
물론 인덱싱 str[0]
을 이용해서 비교해볼 수도 있겠지만, 함수를 이용해 표현하는 것이 간편하고 가독성도 좋겠죠?
그리고 아래의 예제를 보면 알 수 있듯이 Boolean 타입으로 반환되기 때문에 주로 조건문과 함께 사용됩니다.
word = 'elice'
print(word.startswith('s'))
print(word.startswith('e'))
출력결과
False
True
4. split()
split()
함수는 문장을 특정 문자를 기준으로 나누어 리스트로 반환하는 함수입니다.
인자값을 전달하지 않으면 공백문자(띄어쓰기, 탭, 개행)를 기준으로 문장을 나눕니다.
만약 특정 문자(주로 특수문자)를 기준으로 나누기를 원한다면 인자값으로 넘겨주면 됩니다.
하지만 주로 공백을 나눌 때 사용하며, 특수문자를 지우는 방법은 이후에 설명하게 될 함수로 해결하는 경우가 많습니다.
str1 = 'The rabbit ran quickly and went'
str2 = 'Alice chased the rabbit'
print(str1.split())
print(str2.split())
출력결과
['The', 'rabbit', 'ran', 'quickly', 'and', 'went']
['Alice', 'chased', 'the', 'rabbit']
5. append()
append()
함수는 리스트(가장 마지막)에 요소를 추가하는 함수입니다.
추가로 remove(x)
함수는 리스트에서 처음으로 나오는 x를 제거해주는 함수입니다.
slist = ['alice', 'rabbit', 'hatter']
slist.append('queen')
print(slist)
slist.remove('hatter')
print(slist)
출력결과
['alice', 'rabbit', 'hatter', 'queen']
['alice', 'rabbit', 'queen']
6. lower()
lower()
함수는 문장의 대문자를 모두 소문자로 바꾸어주는 함수입니다.
우리는 Elice, elice, ELICE를 모두 같은 단어로 인지하지만, 컴퓨터는 모두 다른 단어로 생각하기 때문에 의미단위의 작업이 필요한 경우 이 함수를 사용합니다.
text = 'Alice chased the rabbit'
print(text.lower())
출력결과
alice chased the rabbit
7. replace()
replace()
함수는 두 개의 인자를 넘겨주어야 합니다.
replace('a', 'b')
는 a를 b로 바꾸어주는 함수 입니다.
앞서 split()
함수와 함께 특수문자를 지우는 목적으로 사용된다고 말씀드렸던 함수입니다.
replace()
함수는 여러 개를 동시에 사용할 수 있습니다.
alice = "Oh dear! I'm late."
new_alice = alice.replace("!", "").replace("'", "").replace(".", "")
print(new_alice)
출력결과
Oh dear Im late
1주차의 최종 과제는 트럼프 대통령의 트윗을 분석해서 해시태그#
, 멘션@
, 키워드로 분류하여 월별 통계와 단어 구름을 만드는 것이었습니다.
물론 막대 그래프와 단어 구름에 대한 함수는 미리 구현되어 있었고, 우리가 할 일은 해시태그와 멘션과 키워드를 뽑아내고 월별 통계를 준비하는 것이었습니니다.
문제가 궁금하신 분들은 한 번 도전해보세요!
사실 이번 주에 다루었던 함수들은 이미 자주 사용하는 함수들이었지만, 막상 실제 데이터에 사용하기엔 막막했던 함수들이었습니다.
하지만 이번 수업에서 한 단계 한 단계 차근차근 연습해보니 어떻게 활용할 지에 대한 방향이 대략 잡힌 것 같습니다.
혹시 저처럼 데이터 사이언스에 관심이 있지만 어디서부터 시작해야할 지 막막하신 분들은 데이터 전처리를 위해 꼭 필요한 내용들이 담긴 수업이니 한 번 쯤 수강해보시는 것도 좋을 것 같습니다.
이번 포스팅을 준비하는 기간도 저는 독학으로 뒤죽박죽 우겨넣은 내용들을 차곡차곡 정리해보는 시간을 가질 수 있었습니다.
아무 근거도 없이 ‘나는 1년차 주제에 아는 건 많아!’ 라고 우기던 초반의 모습에 비해 어느 정도 성장이 느껴지시나요?
저와 함께 여러분도 함께 성장하는 여정이 되었다면 정말 기쁠 것 같아요!
이제 점점 우리의 마지막이 다가오고 있어요.
마지막까지 흔들리지 않고 차곡차곡 성장하는 모습 보여드릴게요.
여러분도 저와 함께 자신감에 근거가 채워지는 시간이 되기를 바라며 다음 포스팅에서도 다시 만나요!
이 글은 /*elice*/
서포터즈 활동을 위해 작성되었습니다.
elice academy : https://academy.elice.io/explore
민아가 들은 수업이 궁금하다면?
데이터 분석 기초: https://academy.elice.io/courses/283/lectures/all
이 글은 elice gitbook과 블로그에서도 연재됩니다.
elice gitbook: https://elicesupporters.gitbook.io/support/