언빌리버블티

[Python] Pandas 데이터프레임 조건 탐색 및 대치 메서드 pd.where 과 np.where 차이 본문

Language/Python

[Python] Pandas 데이터프레임 조건 탐색 및 대치 메서드 pd.where 과 np.where 차이

나는 정은 2022. 10. 11. 13:33

 

데이터프레임 조건 탐색 및 대치 메서드

.where() & np.where() 비교

 

series.where() :

판다스 Series 객체의 함수

Series.where(조건, other=_NoDefault.no_default, inplace=False, axis=None, level=None, 
              errors=_NoDefault.no_default, try_cast=_NoDefault.no_default)
 
  • Series 객체에 대한 조건문과 거짓 값을 대체할 값 두 가지를 입력받는다.
    • pandas의 메서드는 아님 ! 시리즈 객체의 함수
      • 조건문의 참 값에 대해서는 Series값이 그대로 들어가게 된다.
df.where(df['접촉력'] == '해외유입',False)['접촉력']
연번
218646    False
218645    False
          ...  
2          해외유입
1          해외유입
Name: 접촉력, Length: 218646, dtype: object
False    216280
해외유입       2366
Name: 접촉력, dtype: int64
 
  • 접촉력이 해외유입인 경우 그대로 해당 데이터 a열의 값을 두고, 해외유입이 아닌 경우 지정해둔 False를 반환한다.

np.where() :

Array 객체 함수

numpy.where(condition, [x, y, ]/)
  • np.where(배열에 대한 조건문, True인 경우의 값, False인 경우의 값)의 형태로 사용한다.
    • 참과 거짓인 경우를 구분해준 뒤 array(배열)로 반환된다.
      • 배열로 반환되기 때문에 조건문을 좀 더 자유롭고 유연하게 구현할 수 있다는 장점을 가진다.
np.where(df['접촉력'] == '해외유입', 1 , 0)
array([0, 0, 0, ..., 0, 1, 1])

이렇게 새로운 파생 변수를 만들어 붙일 수 있다.

 


 

 

Comments