[판다스/Pandas] 람다(lambda) 함수를 사용하여 여러 컬럼 합(sum) 계산하기

2020. 3. 18. 00:16Data Science/Data Analysis

여러 컬럼 합(sum)을 계산하여 하나의 새로운 컬럼에 넣어보는 것을 람다 함수를 사용하여 쉽게 해보겠습니다.

 

 

코드는 아래와 같습니다.

 

import pandas as pd

data = {'contestants': ('Alex', 'John', 'Sam', 'Alex', 'John', 'Sam', 'Alex', 'John', 'Sam'),
     'round': (1, 1, 1, 2, 2, 2, 3, 3, 3),
     'score1': (84.5, 91.4, 92.2, 85.2, 88.1, 83.1, 80.2, 93.5, 82.1),
     'score2': (88.2, 89.8, 88.7, 86.3, 89.0, 83.1, 79.9, 92.8, 80.9),
     'score3': (84.1, 90.2, 93.2, 89.0, 90.1, 83.0, 81.0, 92.2, 82.3),
     'score4': (85.9, 92.0, 90.2, 88.1, 87.0, 85.0, 83.2, 93.0, 86.3),
     'score5': (84.7, 90.0, 88.1, 82.9, 89.2, 84.1, 82.7, 90.8, 86.0),
     'difficulty': (3.5, 3.2, 3.2, 3.6, 3.5, 3.6, 3.8, 3.2, 3.7)}
     
df_data = pd.DataFrame(data)
df_data.info()

# 람다를 사용하지 않는 경우
for idx, (key, value) in enumerate(df_data.items()):
    
    df_data.loc[idx, 'aa'] = df_data.loc[idx, 'score1'] + df_data.loc[idx, 'score2'] + df_data.loc[idx, 'score3'] + \
    df_data.loc[idx, 'score4'] + df_data.loc[idx, 'score5']
    

# 람다를 사용하는 경우
df_data['middle_score'] = \
df_data[['score1', 'score2', 'score3', 'score4', 'score5']].apply(lambda series: series.sum(), axis=1)

 

df_data.info()

람다를 사용하지 않는 경우

 

람다를 사용 하는 경우