전화로 레스토랑에 예약을 할 때,
예약자의 성함을 잘못 기록해,
올리비아가 아니라
알리비아라고 예약된 경우가 종종 있었다.
전달 과정에서 왜곡이 일어난 것인데,
입모양을 볼 수 없는
전화통화에서 흔히 일어나는 오류이다.
오늘은
단어 철자를 헷갈리지 않도록 도와서
이런 에러를 줄이는데 유용한 프로그램을 코딩해보려 한다.
바로 나토 음성 문자 생성기이다.
오늘의 미션이다.
<미션>
내 이름을 입력하면,
각 알파벳에 상응하는 단어를 모은 리스트를 출력하기
read_csv()
csv파일을 읽는다.
import pandas
data = pandas.read_csv("nato_phonetic_alphabet.csv")
print(data)
pandas를 임포트하고 read_csv()로 csv 파일을 읽어온다.
letter code
0 A Apple
1 B Banana
2 C Christmas
3 D Duck
4 E Echo
5 F Fox
6 G Golf
7 H Hotel
8 I India
9 J Juice
10 K Kite
11 L Love
12 M Map
13 N Nacho
14 O Oasis
15 P Papa
16 Q Quebec
17 R Rose
18 S Slack
19 T Tango
20 U Uniform
21 V Victoria
22 W Wife
23 X X-ray
24 Y Yahoo
25 Z Zoo
to_dict()
우선 간단하게 to_dict()메소드로 데이터를 딕셔너리로 만들어보자.
to_dict() 메소드로 딕셔너리로 데이터를 변환해보면
letter, code 두 개의 키로 나머지 열 값들이 순서대로 나열된다.
그러나 이런 형태는 데이터처리에 큰 도움이 되지 않는다.
print(data.to_dict())
{'letter': {0: 'A', 1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K', 11: 'L', 12: 'M', 13: 'N', 14: 'O', 15: 'P', 16: 'Q', 17: 'R', 18: 'S', 19: 'T', 20: 'U', 21: 'V', 22: 'W', 23: 'X', 24: 'Y', 25: 'Z'}, 'code': {0: 'Apple', 1: 'Banana', 2: 'Christmas', 3: 'Duck', 4: 'Echo', 5: 'Fox', 6: 'Golf', 7: 'Hotel', 8: 'India', 9: 'Juice', 10: 'Kite', 11: 'Love', 12: 'Map', 13: 'Nacho', 14: 'Oasis', 15: 'Papa', 16: 'Quebec', 17: 'Rose', 18: 'Slack', 19: 'Tango', 20: 'Uniform', 21: 'Victoria', 22: 'Wife', 23: 'X-ray', 24: 'Yahoo', 25: 'Zoo'}}
iterrows()
다른 방법으로
판다스를 이용해 데이터프레임으로 바꾼 후,
iterrows() 메소드를 이용해서 행별로 (index, row) 데이터를 뽑아보자.
그 다음 딕셔너리 내포를 사용하여 각 행의 키인 letter와 code를 이용해 새로운 딕셔너리를 만든다.
df = pandas.DataFrame(data)
new_dict = {row.letter: row.code for (index,row) in df.iterrows()}
print(new_dict)
{'A': 'Apple', 'B': 'Banana', 'C': 'Christmas', 'D': 'Duck', 'E': 'Echo', 'F': 'Fox', 'G': 'Golf', 'H': 'Hotel', 'I': 'India', 'J': 'Juice', 'K': 'Kite', 'L': 'Love', 'M': 'Map', 'N': 'Nacho', 'O': 'Oasis', 'P': 'Papa', 'Q': 'Quebec', 'R': 'Rose', 'S': 'Slack', 'T': 'Tango', 'U': 'Uniform', 'V': 'Victoria', 'W': 'Wife', 'X': 'X-ray', 'Y': 'Yahoo', 'Z': 'Zoo'}
input()
문자를 입력하도록 한다. 출력되는 데이터타입은 string이다.
upper()
대문자로 바꾼다.
input_word = input("영어로 이름을 입력하세요").upper()
리스트내포를 이용해 새로운 리스트를 만들어준다.
new_list = [new_dict[word] for word in input_word]
print(new_list)
영어로 이름을 입력하세요>> olivia
['Oasis', 'Love', 'India', 'Victoria', 'India', 'Apple']
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[27-2 파이썬] 기본값을 갖는 Keyword Arguments (1) | 2022.09.13 |
---|---|
[27-1 파이썬] GUI, Tkinter (1) | 2022.09.13 |
[26-3 파이썬] 판다스 데이터 프레임 iterrows() (0) | 2022.09.12 |
[26-2 파이썬] 딕셔너리 컴프리핸션 dictionary comprehension (0) | 2022.09.12 |
[26-1 파이썬] 리스트 컴프리핸션 List comprehension (0) | 2022.09.11 |