판다스에서 특정 조건을 만족하는 값을 찾아서 변경하기

파이썬을 사용하다보면 판다스에서 특정조건을 찾아서 변경해야할 때가 있는데요.

 

예를 들어 아래와 같이 데이터를 만들어봅니다.

 

import pandas as pd

data = {'name':['choi','kim','lee','park'],
        'grades':[90,80,70,60],
        'result':['N/A','N/A','N/A','N/A']}

df = pd.DataFrame(data,columns=['name','grades','result'])

실행을 하면 아래처럼 데이터가 잘 입력된 것을 알 수 있습니다.

이 때 90점이상이면 A를 result에 넣어보도록 하겠습니다.

 

df.loc[조건, 변경할열] = 값의 순서로 넣어주시면 되는데요.

 

저는 grades열이 90이면 result열을 A가 되도록 짜보았습니다.

df.loc[df['grades'] == 90, 'result'] = 'A'

print(df)

실행하면 아래와 같이 변경된 것을 알 수 있습니다.

그리고 80점이면 B를 주고

 

AB가 아닌 나머지에 대해서는 F를 준다면 아래처럼 코딩할  수 있습니다.

df.loc[df['grades'] == 80, 'result'] = 'B'
print(df)

condition1 = (df['result'] == 'B')
condition2 = (df['result'] == 'A')
df.loc[~(condition1 | condition2),'result'] = 'F'

#df.loc[(condition1 | condition2 , 'result'] = 'F'
print(df)

 

이렇게 간단하게 구현할 수 있는데요.

 

잘 사용하시기 바랍니다.