인공지능 AI/머신러닝 Machine Learning

판다스pandas에서 데이터를 한 줄row씩 읽어와서 기존 값을 바탕으로 새 값을 새 칼럼에 넣기

Tap to restart 2021. 2. 23. 18:00
이름 국어 수학
이서연 70 80
김민준 70 80
박지우 70 80

위와 같은 데이터가 있다.

 

여기서 과목별 합계 점수를 구해 '합계'란 칼럼을 추가해서 값을 넣고 싶다.

 

할 수 있는 방식이 여러가지 있지만, 한 줄씩 읽어오는 방식을 사용한다면 다음과 같다.

import pandas as pd

data_list = []
data = {}
data['name'] = '이서연'
data['korean'] = 70
data['math'] = 80
data_list.append(data)
data = {}
data['name'] = '김민준'
data['korean'] = 70
data['math'] = 80
data_list.append(data)
data = {}
data['name'] = '박지우'
data['korean'] = 70
data['math'] = 80
data_list.append(data)

df = pd.DataFrame(data_list)
for index, row in df.iterrows():
    df.loc[index,'sum'] = row['korean'] + row['math']
print(df)

출력 결과

  name  korean  math    sum
0  이서연      70    80  150.0
1  김민준      70    80  150.0
2  박지우      70    80  150.0

 

이렇게 iterrows를 사용하는 방식은 처리 속도가 엄청 오래 걸린다. 되도록 다른 방식을 쓰는 것이 좋다.