Python, Pandas, Numpy에서 Pandas의 size와 count 차이점
개요
차이점
NaN 처리
size()
: NaN 값을 포함하여 모든 데이터의 개수를 반환합니다.
결과 타입
-
DataFrameの場合:
- 모든 컬럼이 동일한 크기라면 Series 타입으로 결과를 반환합니다.
- 컬럼마다 크기가 다르면 각 컬럼의 크기를 포함하는 DataFrame 타입으로 결과를 반환합니다.
-
Seriesの場合:
성능
size()
:count()
보다 일반적으로 빠릅니다.
예시
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [3, np.nan, 4]})
print(df.size())
# 결과: 6
print(df.count())
# 결과:
# A 2
# B 2
print(df['A'].size())
# 결과: 3
print(df['B'].count())
# 결과: 2
결론
- NaN 값을 포함하여 데이터의 총 개수를 확인하고 싶을 때는
size()
를 사용합니다. - 성능이 중요한 경우에는
size()
를 사용하는 것이 좋습니다.
예제 코드
import pandas as pd
import numpy as np
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [3, np.nan, 4]})
# size() 예시
print('--- size() ---')
print(df.size()) # 결과: 6
print(df['A'].size()) # 결과: 3
print(df['B'].size()) # 결과: 3
# count() 예시
print('--- count() ---')
print(df.count()) # 결과:
# A 2
# B 2
print(df['A'].count()) # 결과: 2
print(df['B'].count()) # 결과: 2
# NaN 값 제거 후 size() 예시
print('--- size() after dropping NaN ---')
df_dropna = df.dropna()
print(df_dropna.size()) # 결과: 4
print(df_dropna['A'].size()) # 결과: 2
print(df_dropna['B'].size()) # 결과: 2
# NaN 값 제거 후 count() 예시
print('--- count() after dropping NaN ---')
print(df_dropna.count()) # 결과:
# A 2
# B 2
print(df_dropna['A'].count()) # 결과: 2
print(df_dropna['B'].count()) # 결과: 2
설명
size()
와count()
함수를 다양한 상황에서 사용하여 결과를 비교해 보았습니다.- NaN 값을 포함하거나 제거한 후에도 함수의 작동 방식을 확인할 수 있습니다.
참고
- 예시 코드는 기본적인 사용법을 보여주는 예시이며, 상황에 따라 다양하게 활용할 수 있습니다.
- Pandas 공식 문서를 참고하여 더 많은 정보를 얻을 수 있습니다.
Pandas에서 size와 count의 대체 방법
len() 함수
len()
함수는 Python에서 리스트나 문자열 등의 길이를 확인하는 데 사용하는 함수입니다.- Pandas DataFrame이나 Series에도
len()
함수를 사용할 수 있으며,size()
함수와 동일한 결과를 반환합니다.
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [3, np.nan, 4]})
print(len(df)) # 결과: 6
print(len(df['A'])) # 결과: 3
print(len(df['B'])) # 결과: 3
np.count_nonzero() 함수
np.count_nonzero()
함수는 NumPy에서 배열의 0이 아닌 값의 개수를 확인하는 데 사용하는 함수입니다.
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [3, np.nan, 4]})
print(np.count_nonzero(df)) # 결과: 4
print(np.count_nonzero(df['A'])) # 결과: 2
print(np.count_nonzero(df['B'])) # 결과: 2
주의: np.count_nonzero()
함수는 0과 False, None 값을 모두 0으로 간주합니다.
.sum() 함수와 .isnull().sum() 함수
.sum()
함수는 DataFrame이나 Series의 모든 값을 합산하는 데 사용하는 함수입니다.
df = pd.DataFrame({'A': [1, 2, np.nan], 'B': [3, np.nan, 4]})
print(df.sum()) # 결과: Series(A=3, B=7)
print((df.isnull().sum())) # 결과: Series(A=1, B=1)
# 유효한 데이터 개수 계산
print((df.sum() - df.isnull().sum())) # 결과: Series(A=2, B=6)
주의: .sum()
함수는 NaN 값을 0으로 간주합니다.
.value_counts() 함수
df = pd.DataFrame({'A': [1, 2, 1], 'B': [3, 4, 3]})
print(df['A'].value_counts()) # 결과: 1 2
# 2 1
print(df['B'].value_counts()) # 결과: 3 2
# 4 1
주의: .value_counts()
함수는 NaN 값을 포함하지 않습니다.
결론
size()
와count()
함수는 Pandas에서 데이터프레임이나 시리즈의 크기를 확인하는 데 가장 일반적으로 사용되는 함수입니다.- 상황에 따라
len()
,np.count_nonzero()
,.sum()
함수와.isnull().sum()
,.value_counts()
함수 등을 대체 방법으로 활용할 수 있습니다.
python pandas numpy