Transforming Data Using a Function or Mapping - map()
data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon',
'Pastrami', 'corned beef', 'Bacon',
'pastrami', 'honey ham', 'nova lox'],
'ounces': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
data
food ounces
0 bacon 4.0
1 pulled pork 3.0
2 bacon 12.0
3 Pastrami 6.0
4 corned beef 7.5
5 Bacon 8.0
6 pastrami 3.0
7 honey ham 5.0
8 nova lox 6.0
meat_to_animal = {
'bacon': 'pig',
'pulled pork': 'pig',
'pastrami': 'cow',
'corned beef': 'cow',
'honey ham': 'pig',
'nova lox': 'salmon'
}
모든 데이터가 준비되었습니다.
우선 Food column의 모든 글을 소문자로 바꿉시다.
lowercased = data['food'].str.lower()
lowercased
0 bacon
1 pulled pork
2 bacon
3 pastrami
4 corned beef
5 bacon
6 pastrami
7 honey ham
8 nova lox
Name: food, dtype: object
그리고 이제 map을 이용해서, meat_to_animal 값과 일치시켜 줍시다.
data['animal'] = lowercased.map(meat_to_animal)
data
food ounces animal
0 bacon 4.0 pig
1 pulled pork 3.0 pig
2 bacon 12.0 pig
3 Pastrami 6.0 cow
4 corned beef 7.5 cow
5 Bacon 8.0 pig
6 pastrami 3.0 cow
7 honey ham 5.0 pig
8 nova lox 6.0 salmon
보기 불편하네요 ㅜ
이때 다른 방식으로도 food column에 있는 값과 meat_to_animal 값을 일치시켜 줄 수 있습니다.
data['food'].map(lambda x: meat_to_animal[x.lower()])
0 pig
1 pig
2 pig
3 cow
4 cow
5 pig
6 cow
7 pig
8 salmon
Name: food, dtype: object
'Python Library > Pandas' 카테고리의 다른 글
[Pandas - Python] Renaming Axis Indexes - rename() (축의 인덱스 이름 변경) (0) | 2022.06.13 |
---|---|
[Pandas - Python] Replacing Values - replace() (값 변경) (0) | 2022.06.13 |
[Pandas - Python] Removing Duplicates - drop_duplicates() (중복 제거) (0) | 2022.06.13 |
[Pandas - Python] Handling Missing Data (누락된 데이터 처리) (0) | 2022.06.13 |
[Pandas - Python] Pandas 라이브러리와 그룹화 (0) | 2022.02.08 |