데이터의 가능성/pandas

04_Apply_Students_Alcohol_Consumption_Exercises

gamnyam 2024. 6. 24. 09:33

1. 필요한 librarie들을 import 하세요.

import pandas as pd
import numpy as np

 

2. 다음 주소의 dataset을 import 하세요.

url = "https://raw.githubusercontent.com/myoh0623/dataset/main/student-mat.csv"

 

3. df라는 변수에 DataFrame을 할당하세요..

df = pd.read_csv(url)
df.head()

 

4. school"부터 "guardian"까지 DataFrame을 슬라이싱 하여 stud_alcoh에 할당하세요. 단 "guardian" column이 포함되어야 합니다.

stud_alcoh = df.loc[:, 'school':'guardian']

 

5. 문자열의 앞글자를 대문자로 변경해주는 lambda 함수 또는 함수를 만드세요.

capitalizer = lambda x:x.capitalize()
capitalizer("hello world")

 

6. Mjob 와 Fjob column에 step5 에서 만든 function을 적용하고 원래 stud_alcoh DataFrame에 적용하세요.

stud_alcoh.Mjob = stud_alcoh.Mjob.apply(capitalizer)
stud_alcoh.Fjob = stud_alcoh.Fjob.apply(capitalizer)
stud_alcoh.head()

 

7. legal_drinker 라는 Column을 만들고 다음과 같은 내용을 추가 합니다.

stud_alcoh['legal_drinker'] = df['age'] >= 18

 

<심화> 

def legal_drinker(x) :
    if x>= 18 :
        return True
    else :
        return False
stud_alcoh["legal_drinker"] = stud_alcoh.age.apply(legal_drinker)

 

8. 숫자로 된 dataset에 10을 곱하세요.

def times_10(x):
    if type(x) is int:
        return 10*x
    else :
        return x
stud_alcoh.map(times_10)

 

- apply는 한 줄에만 적용 가능
-  map을 이용하면 전체 적용 가능

 

# 참고
stud_alcoh.dtypes =="int64"
numeric_columns = stud_alcoh.select_dtypes(include='number').columns
stud_alcoh[numeric_columns] = stud_alcoh[numeric_columns] * 10