먼지뭉치 Data Analysis

[pandas] if 문으로 빈 데이터프레임 거르기 본문

데이터분석/데이터 전처리

[pandas] if 문으로 빈 데이터프레임 거르기

데이터분석과 개발 2023. 3. 16. 22:20

* 공부한 것을 정리한 글이므로 틀린 내용이 있을 수 있습니다.

* 더 좋은 방법 또는 틀린부분이 발견될 시 계속 수정하며 업데이트 할 예정입니다.

 

어떤 큰 데이터 프레임에서 for 문을 사용해서 각각의 데이터프레임을 확인해야 했던 경험이 있습니다.

예를 들면 과일 리스트 '사과','포도','딸기' 중에서 등급이 'A등급','B등급','C등급' 이 각각 있던 데이터프레임에

날짜별 수확량 데이터가 있어 수확량의 추이를 보고 싶었습니다.

 

그냥 보면 괜찮았을텐데 일별 데이터를 월별 데이터로 바꿨을 때 문제가 생겼습니다.

C등급의 과일 데이터가 없는 경우가 있어서 resample할 데이터가 없어서 에러가 나서

for문이 돌아가질 않았습니다.

 

(조건에 맞는 에러가 나는 데이터셋을 만들어보다가 ... 시간이 너무 오래걸려서 간단정리만 해보겠습니다..!)

아래 코드는 작동되지 않는 코드입니다 느낌만 내보겠습니다.

핵심은 " df is None" 입니다.

fruit_list = ['Apple','Graph','Strawberry']
for fruit in fruit_list:
	df_fruit = df[df['Name']==fruit]
    
    # 빈데이터 프레임의 경우 넘어가는 코드
    if df_fruit is None:
    	pass
        
    else:
    	...

 

알고나니 아무것도 아닌데 막상 코드를 짤때는 버벅였네요 

대부분의 경우 데이터프레임이 비어있어도 코드가 에러나지 않고 돌아갑니다.

특정 케이스(ex. df.resample()..) 를 대비해 정리해 보았습니다!

 

감사합니다.