데이터를 다루다보면, 해당 컬럼을 변경하거나 변형해야할 때가 있다.
이때 유용한 map 과 np.where 을 소개하고자 한다.
1) map
map 은 Series 형태인 데이터에 적용가능한 메서드이다. dataframe은 시리즈가 여러개 합쳐진 자료형이라고 생각하면 되는데, 그렇다면 dataframe에 map 메서드를 적용할 수 있다는 뜻이다.
예를들어 위와 같은 데이터가 df 라는 변수에 저장되어 있다고 생각해보자. diagnosis 는 M, B 두 가지 문자가 존재한다.
나는 M은 malignant, B는 benign 로 변경하고 싶다.
그렇다면 다음과 같은 코드를 실행하면 된다.
class_mapping = {'M' : 'malignant', 'B' : 'benign'}
df['diagnosis'] = df['diagnosis'].map(class_mapping)
df.head()
실행 결과
2) np.where
numpy.where() 함수는 조건에 맞는 원소를 반환하는 함수이다.
가장 간단한 예제로는 다음과 같다.
a = np.arange(10)
a
>> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# np.where(condition, True, False)
np.where(a < 5, a, 10*a)
array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])
위의 예제에서 a<5 는 condition을 의미하고 해당 조건이 참 일 경우에는 a를 반환하고, 거짓 일 경우에는
10*a인 값을 반환한다.
예제를 살펴보았으니 dataframe을 통한 다른 예제를 살펴보자.
map 에서 살펴보았던 예제에서 'diagnosis' 컬럼의 유니크한 값은 'malignant', 'benign' 이 존재하였다.
np.where을 사용하여 해당 값을 각각 1과 0 으로 변경해보자.
df['diagnosis'] = np.where(df['diagnosis'] == 'malignant', 1, 0)
df.head()
실행 결과
'데이터분석' 카테고리의 다른 글
pandas.qcut, 구간 나누기, categorical 변수 (0) | 2023.08.21 |
---|---|
scikit learn, GridSearchCV (0) | 2023.08.18 |
날짜 형식 데이터를 연, 월, 일로 변경하기 (0) | 2023.08.10 |
주피터 노트북 단축기 정리 (0) | 2022.11.18 |
DataFrame, Join Type의 종류, python (0) | 2022.11.11 |