코드잇/Python

[판다스] 특정 조건에 맞는 데이터 필터링하기

봉그리봉봉 2024. 7. 5. 00:33

# 버거 데이터를 예시로 ! 

 

1. 모든 햄버거들(전체 행) 칼로리만(특정 열만) 보기

burger_df['calories']

 

2. 칼로리가 500 미만인 햄버거만 가져오기 = 특정 조건에 해당하는 행만 가져오기

burger_df['calories'] < 500

True = 500 미만

False = 500 이상 

y]

 

type 불린  =  판다스 시리즈가 만들어짐

시리즈 안에는 True, False 값들이 들어감

기존 인덱스(상품명)은 유지 

 

 

 

 

 

 

 

 

 

 

 

4. masking _ 필터링하기 

burger_df.loc[burger_df['calories'] < 500]

True 에 해당하는 값(ROW)들만 필터링 되어서 출력  즉 모든 컬럼에 대해 특정 컬럼의 조건에 해당하는 값들(로우)만 보임. 

 

 

5. 행 ROW를 필터링했는데 모든 컬럼이 아니라 특정 컬럼만 보고 싶다면 

컬럼 부분에 보고싶은 컬럼을 리스트로 쓰던가 , 슬라이싱 'calories' : 'fat' 도 가능 

 

 

6. 그냥 원래 로우만 필터링 하고 싶었으면 loc도 쓸 필요 없음. ! 바로 대괄호 

 

7. 복잡하다 길어진다? -> mask 라는 변수 만들어서 진행하기 

 


09. 데이터 수정 및 추가하기 

#특정 로우 가져오기. 특정 행에 대한 정보 ->

 

# 로우 한 줄의 모든 컬럼 값을 바꾸고 싶다면 컬럼 갯수 맞춰서 리스트로 넣어주기

buger_df.loc['cheesebuger'] = ['맞','는','리','스','트]


# 컬럼 한 줄의 모든 값을 바꾸고 싶다면 로우 값 갯수 맞춰서 리스트로 넣어주기

ex _ row갯수가 15개면 리스트에 15개의 요소가 필요함.

burger_df['column'] = [리스트 15개]

 

# 컬럼 한 줄의 모든 값을 1로 바꾸고 싶다?

burger_df['column'] = 1

 

 

# 새로운 row, 새로운 column 추가하기 ! '

수정 과정이랑 거의 같음. 동일함.

#새로운 컬럼 만들기 : brand 라는 새로운 column에 모든 값을 1로
burger_df['brand'] = 1

#새로운 로우 만들기 : 새로운 로우 와퍼에 각 컬럼 별 값들 
buger_df.loc['wapper'] = ['맞','는','리','스','트]

 

#조건에 따라서 값을 수정하기 

: 고칼로리 햄버거는 따로 표시하자. -> 500이상만 필터링하기

burger_df.loc[burger_df['calories'] >= 500, 'high_calories'] = True
burger_df.loc[burger_df['calories'] < 500, 'high_calories'] = False

칼로리 열 값이 500이상이면 하이 고칼로리에 true 라고 표시하기고

500칼로리 미만이면 False라고 표시하기