01. 데이터 소개 및 개요
- 타이타닉 데이터는 무엇인지?
- 타이타닉 호 사고 당시 승선한 인원에 대한 데이터
- 머신러닝이나 데이터 분석 기초적인 예시에 교과서적으로 자주 사용되는
데이터
- pandas로 데이터 처리 시 알아두면 좋은 메서드
NO. | 메서드 | 설명 |
---|
1 | .describe() | DataFrame 또는 Series 객체에 대한 요약 통계를 제공합니다. 중심 경향, 분포 및 형태 등을 빠르게 이해할 수 있도록 도와줍니다. |
2 | .apply() | 함수를 데이터프레임의 열 또는 행에 적용합니다. 예: 모든 수치 데이터에 2를 곱하기. |
3 | .sort_values() | 값에 따라 오름차순 또는 내림차순으로 정렬합니다. 복수 열 기준 정렬도 가능. |
4 | .tail() | 지정된 수의 행만 반환합니다. 최근 데이터 확인이나 데이터 크기 큰 경우 빠르게 점검할 때 유용. |
5 | .replace() | 특정 값을 다른 값으로 대체합니다. 예: 'apple' 을 'orange' 로. |
6 | pd.to_numeric() | 문자열이나 다른 타입의 데이터를 숫자형으로 변환합니다. |
7 | .get_dummies() | 범주형 변수의 각 고유 값을 더미(0/1) 컬럼으로 변환합니다. |
8 | Aggregation (groupby() , agg() 등) | 여러 데이터를 그룹별로 요약하여 통계량을 계산하거나 정보를 추출합니다. |
9 | .merge() | 두 개 이상의 데이터프레임을 특정 열 기준으로 병합합니다. SQL의 JOIN과 유사. |
10 | .value_counts() | 범주형 데이터를 요약하는 데 유용한 메서드입니다. 빈도 분석 등에서 자주 사용. |
02. 결측치 체크
- Q. 데이터의 컬럼 중 'Name', 'Ticket', 'ticket_date'을 동시에 삭제하고, 삭제한 데이터를 dt_data로 저장
dt_data = data.drop(['Name','Ticket','ticket_date'],axis=1)
data[data['Embarked'].isna()]
03. 이상치 처리
- Q. 데이터의 'Age' 컬럼에 있는 모든 값에 대해, 70세 초과인 경우 그 값을 70으로 변경하고 그렇지 않은 경우 원래의 값을 유지하는 코드를 적어주세요. (참고: lambda 함수를 활용하고, 'Age' 컬럼이 내림차순으로 보일 수 있도록 정렬해 주세요.)
data['Age'] = data['Age'].apply(lambda x:70 if x>70 else x)
data = data.sort_values(by='Age', ascending = False)
04. 중복 데이터 처리
- Q.
1) 'Gendr' 컬럼의 이름을 'Gender'로 바꾸고,
2) 'male'을 '0', 'female'을 '1'로 바꾸는 코드를 적어 보세요.
data = data.rename({'Gendr':'Gender'}, axis=1)
data['Gender'] = data['Gender'].replace({'male':0, 'female':1})
05. 텍스트 처리
- Q. txt = STON/OE. 3101282에서 숫자만 출력되도록 코드를 작성
txt = 'STON/OE. 3101282'
print(txt[-7:])
- Q. 'Ticket' 컬럼에서 숫자(int)만 출력되도록 코드를 작성
data['Ticket'] = data['Ticket'].str.split().apply(lambda x:x[-1])
data['Ticket'] = data['Ticket'].replace({'LINE' : '999999'})
data['Ticket'] = pd.to_numeric(data['Ticket'])
06. 날짜 및 시간 데이터 처리
- Q. 2022년 11월 24일부터 2023년 3월 15일까지의 일수를 datetime 라이브러리를 활용하여 계산
from datetime import datetime
date1 = datetime.strptime('2022-11-24','%Y-%m-%d')
date2 = datetime.strptime('2023-03-15','%Y-%m-%d')
date2 - date1
- Q. 타이타닉이 침몰한 날짜는 1912년 4월 15일입니다. 침몰한 날짜를 기준으로 각 승객이 몇 일 전에 티켓을 구매했는지 볼 수 있도록 코드를 작성
from datetime import datetime
acc = datetime.strptime('1912-04-15','%Y-%m-%d')
data['ticket_date'] = pd.to_numeric(data['ticket_date'])
data['buy_before'] = acc - data['ticket_date']
data['buy_before'] = data['buy_before'].dt.days