DataFrame method chain으로 묶기
- Series와 달리 DataFrame에 대한 method chaining은 각 단계에서 반환되는 객체 유형을 정확히 숙지해야 함
In [66]:
movie = pd.read_csv(r'C:\Users\user\jupyterpractice\EDA\Pandas-Cookbook-master\data\movie.csv')
movie.isnull().head()
Out[66]:
In [56]:
# sum()은 isnull() Boolean 값에 대해 True = 1, False = 0으로 계산하여 합산함
movie.isnull().sum().head()
# 반환 값이 Series 형태임에 주목!
Out[56]:
In [57]:
# 한 번 더 sum() method를 사용하면 전체 누락값(결측치)의 개수를 알려줌
movie.isnull().sum().sum()
Out[57]:
In [58]:
# 누락값의 존재 여부를 파악하는 다른 방법. any method를 두번 사용하였음
# isnull().any() 까지는 각 열에 하나라도 True값이 있으면 True로 반환함. 여기까지는 Series로 반환됨
# 마지막 any() method를 적용하면 True/False로 된 Series에 적용되어 다시 한번 True가 1개라도 있으면 True를 반환하게 되는 것임
# 결과적으로 isnull().any().any()가 True라면 전체 DataFrame 중에서 최소한 1개 이상의 누락값(결측치)이 있다는 의미가 됨
movie.isnull().any().any()
Out[58]:
isnull method의 작동원리
- boolean 형태의 데이터 형식을 반환함
In [59]:
movie.isnull().dtypes.value_counts()
Out[59]:
object type column에 대한 누락값(결측치) 살펴보기
In [62]:
# object type의 column을 선택한 후(누락값 존재) max, min 등의 기술 통계 메서드를 적용 시 아무것도 반환하지 않음
movie[['color', 'movie_title', 'color']].max() # 왜 때문에 나는 결과가 나왔는가.....???
Out[62]:
In [65]:
# 빈 문자열로 결측치(누락값)을 채운 뒤, 기술 통계 메서드 적용
movie.select_dtypes(['object']).fillna('').max()
Out[65]:
In [69]:
# 가독성을 높이는 방법으로 백슬래시를 사용할 수 있음
movie.select_dtypes(['object']) \
.fillna('') \ # 요렇게 하면 각 단계 별로 주석달기도 가능. 가독성 상승!
.max()
Out[69]:
'Data Analysis > Exploratory Data Analysis' 카테고리의 다른 글
Pandas (4) Dataframe 연산 (0) | 2021.09.28 |
---|---|
Pandas (3) Column 네이밍 (0) | 2021.09.27 |
Pandas (2) Column 조작 (0) | 2021.09.24 |
Pandas (1) 데이터 정보 확인 (0) | 2021.09.23 |