판다스 데이터프레임에서 컬럼 값이 특정 조건에 부합하는 행들의 특정 컬럼 값을 수정하는 방법에 대해 살펴보겠습니다. 다음과 같은 데이터프레임이 있습니다.
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 메소드 비교
'Dev > python' 카테고리의 다른 글
[python] 리스트에서 최대값, 최소값의 인덱스 구하기 (0) | 2022.10.09 |
---|---|
[python] scikit-learn의 confusion matrix 해석하기 (0) | 2022.10.08 |
[python] 딕셔너리에서 value가 가장 큰 key 알아내는 방법 (0) | 2022.10.07 |
[python] 10진수를 2진수, 8진수, 16진수로 변환하는 방법 (4) | 2022.10.03 |
[pandas] 데이터프레임 행 또는 컬럼 삭제하기, drop() 메소드 (0) | 2022.10.01 |
[python] 010-1234-5678과 같은 전화번호 문자열에서 하이픈(-) 빼기 (0) | 2022.09.21 |
[python] 클래스(class), 객체(object), 인스턴스(instance) 용어 정리 (0) | 2022.09.21 |
[python] SQLAlchemy로 데이터 조회하는 방법, fetchall() (0) | 2022.09.07 |