조건에 맞는 데이터에 값 대입¶
데이터프레임에서 특정 조건을 만족하는 데이터를 조건색인으로 검색해 값을 대입하는 경우
In [1]:
import pandas as pd
import numpy as np
In [4]:
# 데이터프레임 생성
x = pd.DataFrame({'no':[30, 30, 32, 33, 34],
'name':['James', 'Min', 'Kevin', 'Liz', 'Anne']})
x
Out[4]:
no | name | |
---|---|---|
0 | 30 | James |
1 | 30 | Min |
2 | 32 | Kevin |
3 | 33 | Liz |
4 | 34 | Anne |
In [3]:
# no가 30인 데이터의 name을 aa로 변경
x.loc[x['no'] == 30, 'name'] = 'aa'
x
Out[3]:
no | name | |
---|---|---|
0 | 30 | aa |
1 | 30 | aa |
2 | 32 | Kevin |
3 | 33 | Liz |
4 | 34 | Anne |
cf) 다음과 같은 슬라이싱으로는 값을 대입할 수 없음¶
In [ ]:
x[x['no']==30]['name'] = 'bb'
Try using .loc[row_indexer,col_indexer] = value instead
라는 메세지가 나오는데 이게 앞서 언급한 방법이다.
'파이썬 팁' 카테고리의 다른 글
list.sort()와 sorted()의 차이, key 인자 활용 (0) | 2022.12.04 |
---|---|
클래스, 메소드 정보 조회하기 (0) | 2022.12.01 |
결측치에 그룹별 최빈값 대입하기 (0) | 2022.11.27 |
zip 함수의 활용 (0) | 2022.11.18 |
transform 메소드로 결측치에 그룹별 평균값 대입하기 (0) | 2022.11.09 |
댓글