Python/Pandas

[pandas] 쑰건에 λ§žλŠ” 데이터 필터링 : where( ), query( )

ISLA! 2023. 9. 7. 10:37

πŸ₯‘ 쑰건에 λ§žμ§€ μ•ŠλŠ” 값을 일괄 λŒ€μ²΄ν•˜κ³  싢을 λ•Œ : where( )

  • μ½”λ“œ 예제λ₯Ό 톡해 확인 : num_actor μ—΄μ˜ 값이 2이면 κ·ΈλŒ€λ‘œ 두고, 아닐 경우 False둜 λ³€κ²½
  • ν˜•μ‹ : .where(쑰건, κ±°μ§“μΌλ•Œμ˜ κ°’)

 

copied_data  = df.copy()
copied_data['two_actors'] = copied_data['num_actor'].where(copied_data['num_actor'] == 2, "False")
copied_data[['two_actors']].head(2)

 

 

πŸ₯‘ μ½”λ“œλ₯Ό 효율적으둜 μž‘μ„±ν•˜μ—¬ ν•„ν„°λ§ν•˜κ³  싢을 λ•Œ : query( )

  • query( ) λ©”μ„œλ“œλŠ” λ¬Έμžμ—΄λ‘œ ν‘œν˜„λœ 쑰건을 μž…λ ₯으둜 λ°›λŠ”λ‹€
  • 쑰건식은 λ°μ΄ν„°ν”„λ ˆμž„μ˜ μ—΄ 이름을 μ‚¬μš©ν•˜μ—¬ μž‘μ„±λœλ‹€
  • μ—¬λŸ¬κ°œμ˜ 쑰건은 논리 μ—°μ‚°μžλ₯Ό ν™œμš©ν•˜μ—¬ μž‘μ„±ν•  수 μžˆλ‹€
  • μ•„λž˜ μ˜ˆμ‹œμ—μ„œ, data[data['time']] < 60 보닀 훨씬 κ°„λ‹¨ν•˜κ²Œ 필터링이 κ°€λŠ₯
copied_data = df.copy()
under_60 = copied_data.query('time < 60')
under_60.head()

 

 

copied_data = df.copy()
under_2staff = copied_data.query('num_staff < 2')
under_2staff.head()

 

728x90