2022-10-02 19:05:11

판다스 데이터프레임에서 컬럼 값이 특정 조건에 부합하는 행들의 특정 컬럼 값을 수정하는 방법에 대해 살펴보겠습니다. 다음과 같은 데이터프레임이 있습니다. 

 

import pandas as pd

dict_data = {'이름':['멋쟁이', '모범생', '똑똑이', '일진', '반장'], '점수':[78, 85, 92, 56, 88]}
df = pd.DataFrame(dict_data)
df = df.set_index('이름')
print(df)

 

 

이 데이터프레임에서 점수 컬럼의 값이 90 이상인 경우에는 '학점' 컬럼의 값을 A로, 80 이상 90 미만인 경우에는 B로, 70 이상 80 미만인 경우에는 C로, 60 이상 70미만인 경우에는 D로, 나머지는 F로 입력해주겠습니다. 

 

데이터프레임의 loc 메소드를 활용하여 데이터를 수정해줄 범위를 선택한 후에 값을 넣어주면 됩니다. 아래 코드에서 첫번째 행의 의미를 살펴보면 '점수' 컬럼의 값이 90이상인 행들의 '학점' 컬럼을 선택하여 그 값을 'A'로 넣어주라는 뜻입니다.  

 

df.loc[df['점수'] >= 90, '학점'] = 'A'
df.loc[(df['점수'] >= 80) & (df['점수'] < 90) , '학점'] = 'B'
df.loc[(df['점수'] >= 70) & (df['점수'] < 80) , '학점'] = 'C'
df.loc[(df['점수'] >= 60) & (df['점수'] < 70) , '학점'] = 'D'
df.loc[df['점수'] < 60, '학점'] = 'F'
print(df)

 

 

'학점' 컬럼이 없었지만, 알아서 잘 추가가 되고 값들이 조건에 따라 잘 부여가 되었습니다. 

 

관련 글

- [pandas] 판다스 데이터프레임 loc, at, iloc, iat 메소드 비교