[서초 AI 칼리지 데이터분석] - (6)

hi_rice·2025년 5월 16일

서초AI칼리지-심화

목록 보기
6/8

Pandas 데이터프레임 활용 - (2)

  • 시계열 데이터 다루기 : datetime, dt.date(), dt.time()
  • 외부 함수 적용하기 : apply(), assign()

시계열 데이터 다루기

  • Pandas는 시계열 데이터를 지원
  • pandas 시계열 자료형 : datetime, time, date 등
  • pd.to_datetime() : 입력받은 string을 datetime으로 변환
  • 변환된 datetime() 객체는 서로 빼거나 더해 timedeltal) 단위로 계산이 가능해진다
  • pd.date_range(start, end) : start 부터 end 시간 까지의 시간 범위를 생성
date_str = ["2020, 1, 1", "2020, 1, 3", "2020, 1, 5", "2020, 1, 7"]
idx = pd.to_datetime(date_str)
idx
print(pd.date_range("2020-1-1", "2020-1-15"))      # 1월1일부터 1월15일까지의 시간 범위
print(pd.date_range(start="2020-1-1", periods=15))     # 1월1일부터 15일간의 시간 범위

데이터 프레임의 함수 연산

  • 칼럼들에 연산 적용하기 : apply()
  • 하나/다수의 칼럼에 복잡한 연산이 필요한 경우 : 자체적으로 함수를 정의
  • 정의된 함수와 연산을 apply(func) 를 통해 적용
  • Arguments
    - 첫 인자는 사전 정의된 작동될 함수의 이름
    - 그이후 인자는 작동될 함수의 인자를 따름
def plus(x):
    return x.sepal_length + x.petal_length  # iris의 길이를 모두 더함

iris['length_sum'] = iris.apply(plus,axis=1)    #인자로 plus 함수를 넣는다.
iris.length_sum.head()

새로운 열 생성 : assign()

  • 이미 존재하는 열을 기반으로 새로운 열을 정의할때 사용
  • assign(새로운열의이름 = 수식)의 형식으로 사용
  • 주로 수식은 람다식을 사용
iris.assign(length_sum=lambda x:x.sepal_length + x.petal_length)    #인자로 새로운 열 이름과 수식을 제공
iris.length_sum.head()

Pandas를 활용한 실전 데이터 분석

Titanic Dataset

  • Kaggle Dataset : 20000 < N (https://www.kaggle.com/c/titanic/)
  • 타이타닉호의 승객의 정보를 통해 임의의 사람들의 실종 여부를 맞추는 문제

  • 총 10개의 컬럼
  • 생존 여부, 성별, 나이, 티켓 등급
  • 문자열, 숫자 등 다양한 자료형 포함

Titanic 데이터 불러오기

  • Iris 데이터와 유사하게 Seaborn 라이브러리에서 불러오기
import seaborn as sns
data = sns.load_dataset('titanic')   #titanic 데이터셋 불러오기
data.head()

  • 불러온 titanic 데이터 info() 살펴보기
  • 총 14개의 열을 가지고 있음
  • int, float, object, category 등의 자료형
  • 모든 열의 element 수가 동일하지는 않음
titanic.info()

Titanic 데이터 분석 Missions
1. 중복치 처리를 진행해보자
2. 결측치를 처리해보자
3. 각 숫자형 데이터들의 통계치를 구해보자
4. Category 형 데이터에 groupby를 적용해보자
5. String Type 열에도 agg()를 적용해보자
6. Cabin을 여러개의 열로 분할해보자
7. 나만의 경향성을 찾아보자

0개의 댓글