함수 매핑이란?
시리즈 객체에 apply() 메소드를 적용하면 인자로 전달하는 매핑 함수에 시리즈의 모든 원소를 하나씩 입력하고 함수의 리턴값을 돌려받는다.
import seaborn as sns
def add_10(n):
return n+10
def add_two_obj(a,b):
return a+b
titanic = sns.load_dataset('titanic')
df = titanic.loc[:,['age','fare']]
df['ten']=10
print(df.head())
sr1 = df['age'].apply(add_10)
print(sr1.head())
# 시리즈 객체와 숫자에 적용: 2개의 인수(시리즈+숫자)
sr2 =df['age'].apply(add_two_obj,b=10) # a=df['age']의 모든 원소, b=10
print(sr2.head())
# lambda 함수 활용 : 시리즈 객체에 적용
sr3 =df['age'].apply(lambda x = add_10(x)) # x = df['age']
print(sr3.head()
데이터프레임에 applymap()메소드를 활용하면 매핑 함수에 데이터프레임의 각 원소를 하나씩 넣어서 리턴값으로 돌려받는다.
import seaborn as sns
titanic = sns.load_dataset('titanic')
df = titanic.loc[:,['age','fare']]
print(df.head())
print('\n')
def add_10(n):
return n+10
df_map = df.applymap(add_10)
print(df_map.head())
ex1)
import seaborn as sns
titanic = sns.load_dataset('titanic')
df = titanic.loc[:,['age','fare']]
print(df.head())
print('\n')
def missing_value(series):
return series.isnull()
result = df.apply(missing_value,axis=0)
print(result.head())
ex2)
import seaborn as sns
titanic = sns.load_dataset('titanic')
df = titanic.loc[:,['age','fare']]
def min_max(x):
return x.max()-x.min()
result = df.apply(min_max,axis=0) # default axis=0
print(result)
print(type(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
print(df.head())
df['add'] = df.apply(lambda x : add_two_obj(x['age'],x['ten']),axis=1)
print(df.head())
from os import add_dll_directory
import seaborn as sns
titanic = sns.load_dataset('titanic')
df = titanic.loc[:,['age','fare']]
df['ten']=10
def max_min(x):
return x.max()-x.min()
def add_10(x):
return x+10
def add_two_obj(a,b):
return a+b
# 각 열의 NaN 찾기 - 데이터프레임을 전달하면 데이터프레임 반환
def missing_value(x):
return x.isnull()
# 각 열의 NaN 개수 반환 - 데이터프레임을 전달하면 시리즈 전환
def missing_count(x):
return missing_value(x).sum()
# 데이터프레임의 총 NaN 개수 - 데이터프레임을 전달하면 값 반환
def total_number_missing(x):
return missing_count(x).sum()
print('원본','\n',df.head())
# 데이터프레임의 행 매핑
df['added'] = df.apply(lambda x : add_two_obj(x['age'],x['ten']),axis=1)
print(df.head())
# 데이터프레임의 열 매핑
result0 = df.apply(max_min,axis=0)
print(result0)
# 데이터프레임 원소에 함수매핑
result1 = df.applymap(add_10)
print(result1.head())
# 데이터프레임 객체에 함수매핑
result_df = df.pipe(missing_value)
print(result_df.head())
print(type(result_df))
# 데이터프레임 객체에 함수매핑
result_series = df.pipe(total_number_missing)
print(result_series)
print(type(result_series))