21. 함수 매핑

1) 개별 원소에 함수 매핑

시리즈 객체에 apply() 메소드를 적용하면 인자로 전달하는 매핑 함수에
시리즈의 모든 원소를 하나씩 입력하고 함수의 리턴값을 돌려받음

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

df['ten'] = 10

def add_10(n):
    return n+10

def add_two_obj(a,b):
    return a + b

sr1 = df['age'].apply(add_10)
print(sr1.head())
print('\n')

sr2 = df['age'].apply(add_two_obj, b = 10)
# a = age열의 값, b = 10

print(sr2.head())
print('\n')

sr3 = df['age'].apply(lambda x : add_10(x))
# x = age열의 값

print(sr3.head())

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

df['ten'] = 10

def add_10(n):
    return n+10

def add_two_obj(a,b):
    return a + b

df_map = df.applymap(add_10)
# 데이터프레임 전체에 함수 적용
# 모든 데이터 값에 10을 더함

print(df_map.head())

2) 시리즈 객체에 함수 매핑

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

def missing_value(series):
    return series.isnull()
# 시리즈 객체가 null값인지 여부 반환

result = df.apply(missing_value, axis = 0)
# 데이터프레임을 반환

print(result.head())

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

def max_min(x):
    return x.max() - x.min()
# 각 열별로 최대값 - 최소값

result = df.apply(max_min)
# 데이터프레임을 반환

print(result)

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

df['ten'] = 10

def add_two_obj(a,b):
    return a + b

df['add'] = df.apply(lambda x: add_two_obj(x['age'], x['ten']), axis =1)
# a = age열, b = ten열
# age 열에 10을 더한 값을 반환

print(df.head())

3) 데이터프레임 객체에 함수 매핑

import seaborn as sns

titanic = sns.load_dataset('titanic')
df = titanic.loc[:, ['age', 'fare']]

def missing_value(x):
    return x.isnull()

def missing_count(x):
    return missing_value(x).sum()

def total_number_missing(x):
    return missing_count(x).sum()

result_df = df.pipe(total_number_missing)
# pipe 메소드를 통해 전체 데이터프레임 내 null 값의 수를 반환

print(result_df)

좋은 웹페이지 즐겨찾기