소개
이 랩에서는 Python 의 Pandas 라이브러리를 사용하여 텍스트 데이터를 조작하는 방법을 살펴봅니다. 문자열 문자를 소문자로 변환하고, 문자열의 일부를 추출하고, 문자열 값을 바꾸는 등 다양한 내장 Pandas 메서드를 사용하는 방법을 배우게 됩니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후에 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
필요한 라이브러리 및 데이터 가져오기
Pandas 라이브러리를 가져오고 이 튜토리얼에 사용할 데이터를 로드하는 것으로 시작해 보겠습니다.
## Import necessary libraries
import pandas as pd
## Load the data
titanic = pd.read_csv("data/titanic.csv")
문자열 문자를 소문자로 변환
다음으로, Name 열의 모든 문자를 소문자로 변환합니다. str.lower() 메서드를 사용하여 이를 수행합니다.
## Convert all characters in the 'Name' column to lowercase
titanic["Name"] = titanic["Name"].str.lower()
전체 이름에서 성 추출
이제 승객의 성을 포함하는 새로운 열 Surname을 생성해 보겠습니다. Name 열에서 쉼표 앞부분을 추출하여 이를 수행합니다.
## Split the 'Name' column on comma and extract the first part
titanic["Surname"] = titanic["Name"].str.split(",").str.get(0)
특정 승객 데이터 추출
다음으로, 타이타닉호에 탑승한 백작부인 (countesses) 의 승객 데이터를 추출해 보겠습니다. str.contains() 메서드를 사용하여 Name 열에 'Countess'라는 단어가 포함된 행을 찾습니다.
## Find rows where 'Name' contains 'Countess'
countesses = titanic[titanic["Name"].str.contains("Countess")]
가장 긴 이름 찾기
타이타닉호 승객 중 가장 긴 이름을 가진 승객이 누구인지 알아봅시다. str.len() 메서드를 사용하여 각 이름의 길이를 구하고, idxmax() 메서드를 사용하여 가장 긴 이름의 인덱스를 찾습니다.
## Get the length of each name
name_lengths = titanic["Name"].str.len()
## Find the index of the longest name
longest_name_index = name_lengths.idxmax()
## Get the longest name
longest_name = titanic.loc[longest_name_index, "Name"]
열의 값 대체
마지막으로, Sex 열의 값을 대체해 보겠습니다: 'male'을 'M'으로, 'female'을 'F'로 변경합니다. 이를 위해 replace() 메서드를 사용합니다.
## Replace 'male' with 'M' and 'female' with 'F' in the 'Sex' column
titanic["Sex_short"] = titanic["Sex"].replace({"male": "M", "female": "F"})
요약
이 랩에서는 Python 의 Pandas 라이브러리를 사용하여 텍스트 데이터를 조작하는 방법을 살펴보았습니다. 문자열 문자를 소문자로 변환하고, 문자열의 일부를 추출하고, 문자열 내용에 따라 특정 행을 찾고, 가장 긴 문자열을 찾고, 문자열 값을 대체하는 방법을 배웠습니다. 이러한 지식은 데이터 분석 및 머신 러닝의 중요한 단계인 데이터 전처리에 매우 유용합니다.