pandas와 numpy는 모두 where()이라는 함수를 가지고 있습니다.
그러나 두 함수는 이름만 같고 함수의 정의는 다른데요 알아봅시다.
이 함수는 Series객체1.where(Series객체에 대한 조건문, 거짓 값에 대한 대체 값)의 형태로 사용합니다. 조건문의 참값에 대해서는 Series1객체의 값을 넣어주고 조건문의 false는 지정된 값(2번째 인자)로 대체합니다.
df['a'].where(df['a'] < 3, 10)
0 1
1 2
2 10
3 10
4 10
Name: a, dtype: int64
이 함수는 np.where(배열에 대한 조건문, 참일때 값, 거짓일때 값)의 형태로 사용하며 배열(array)로 반환합니다.
np.where(df['a'] < 3, df['a'],10)
array([ 1, 2, 10, 10, 10], dtype=int64)
df['where_a'] = np.where(df['a'] < 3, '3미만','3이상')
df['where_b'] = np.where(df['b'].isin([10, 30]), 'O', 'X')
df