목차
파이썬의 라이브러리 중 pandas는 데이터 분석과 조작을 위한 강력한 라이브러리로, 다양한 메서드를 제공합니다. 오늘은 이러한 메서드들을 이용하여 데이터 프레임의 각종 정보를 확인하는 데 유용한 내용들을 정리해보려고 합니다. 오늘 확인할 메서드들은 다음과 같습니다.
info / head / tail / describe / value_counts / unique / nunique / dtypes
1. pandas.info()
데이터프레임의 전반적인 정보를 제공합니다. 열의 개수, 열의 이름, 데이터 타입, 누락된 값의 개수 등을 확인할 수 있습니다. 이 메서드는 데이터프레임의 구조를 파악하는 데에 유용합니다.
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Emma', 'Mike'],
'Age': [25, 28, 32],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 데이터프레임 정보 출력
df.info()
# 결과물
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 3 non-null object
1 Age 3 non-null int64
2 City 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
해당 코드에서는 info() 메서드를 사용하여 데이터프레임의 전반적인 정보를 출력합니다. 열의 개수, 열의 이름, 데이터 타입 및 누락된 값의 개수 등을 확인할 수 있습니다. 이 경우, 데이터프레임에는 3개의 행과 3개의 열이 있으며, 'Name'과 'City' 열은 object(문자열) 타입이고, 'Age' 열은 int64(정수) 타입입니다. 누락된 값은 없음을 알 수 있습니다.
2. pandas.head()
데이터프레임의 첫 n개의 행을 반환합니다. 기본값은 5입니다. 이 메서드를 사용하면 데이터의 일부를 미리 확인할 수 있어 데이터의 구성을 파악하는 데 도움이 됩니다.
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
'Age': [25, 28, 32, 29, 36],
'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
df = pd.DataFrame(data)
# 첫 3개 행 출력
print(df.head(3))
# 결과물
# Name Age City
#0 John 25 New York
#1 Emma 28 London
#2 Mike 32 Paris
위 코드에서는 head(3) 메서드를 사용하여 데이터프레임의 첫 3개 행을 출력합니다. 이를 통해 데이터의 일부를 미리 확인할 수 있습니다. 출력된 결과에서는 'Name', 'Age', 'City' 열의 값이 3개의 행에 대해 출력되었습니다.
3. pandas.tail()
데이터프레임의 마지막 n개의 행을 반환합니다. 기본값은 5입니다. head()와 마찬가지로 데이터의 뒷부분을 확인할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
'Age': [25, 28, 32, 29, 36],
'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
df = pd.DataFrame(data)
# 마지막 2개 행 출력
print(df.tail(2))
# 결과물
# Name Age City
# 3 Sarah 29 Sydney
# 4 David 36 Tokyo
위 코드에서는 tail(2) 메서드를 사용하여 데이터프레임의 마지막 2개 행을 출력합니다. 이를 통해 데이터의 뒷부분을 확인할 수 있습니다. 출력된 결과에서는 'Name', 'Age', 'City' 열의 값이 마지막 2개 행에 대해 출력되었습니다.
4. pandas.describe()
자형 열에 대한 기술통계를 제공합니다. 각 열의 개수, 평균, 표준편차, 최소값, 25%, 50%, 75% 백분위수, 최대값 등을 확인할 수 있습니다. 이를 통해 데이터의 분포와 중심 경향성을 파악할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Emma', 'Mike', 'Sarah', 'David'],
'Age': [25, 28, 32, 29, 36],
'City': ['New York', 'London', 'Paris', 'Sydney', 'Tokyo']}
df = pd.DataFrame(data)
# 기술통계 출력
print(df.describe())
# 결과물
# Age
# count 5.000000
# mean 30.000000
# std 4.320494
# min 25.000000
# 25% 28.000000
# 50% 29.000000
# 75% 32.000000
# max 36.000000
위 코드에서는 describe() 메서드를 사용하여 숫자형 열('Age')에 대한 기술통계를 출력합니다. 이를 통해 데이터의 분포와 중심 경향성을 파악할 수 있습니다. 출력된 결과에서는 열의 개수(count), 평균(mean), 표준편차(std), 최소값(min), 25%, 50%, 75% 백분위수, 최대값(max) 등이 제공됩니다.
5. pandas.value_counts()
범주형 열의 각 값의 빈도를 세어 반환합니다. 이를 통해 범주형 데이터의 분포를 파악할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
df = pd.DataFrame(data)
# 값의 빈도 출력
print(df['Category'].value_counts())
# 결과물
# B 3
# C 2
# A 2
# Name: Category, dtype: int64
위 코드에서는 value_counts() 메서드를 사용하여 'Category' 열의 각 값의 빈도를 출력합니다. 이를 통해 범주형 데이터의 분포를 파악할 수 있습니다. 출력된 결과에서는 'B' 값이 3번, 'C' 값이 2번, 'A' 값이 2번 등장함을 알 수 있습니다.
6. pandas.unique()
열의 고유한 값들을 반환합니다. 이를 통해 열에 어떤 값이 있는지 확인할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
df = pd.DataFrame(data)
# 고유한 값 출력
print(df['Category'].unique())
# 결과물
# ['A' 'B' 'C']
위 코드에서는 unique() 메서드를 사용하여 'Category' 열의 고유한 값을 출력합니다. 이를 통해 열에 어떤 값이 있는지 확인할 수 있습니다. 출력된 결과에서는 'A', 'B', 'C'가 열에 고유하게 존재함을 알 수 있습니다.
7. pandas.nunique()
열의 고유한 값의 개수를 반환합니다. 이를 통해 열에 있는 고유한 값의 개수를 확인할 수 있습니다.
import pandas as pd
# 데이터프레임 생성
data = {'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'C']}
df = pd.DataFrame(data)
# 고유한 값의 개수 출력
print(df['Category'].nunique())
# 결과물
# 3
위 코드에서는 nunique() 메서드를 사용하여 'Category' 열의 고유한 값의 개수를 출력합니다. 이를 통해 열에 있는 고유한 값의 개수를 확인할 수 있습니다. 출력된 결과에서는 'Category' 열에는 3개의 고유한 값이 존재함을 알 수 있습니다.
8. pandas.dtypes()
각 열의 데이터 타입을 반환합니다. 이를 통해 열의 데이터 타입을 파악할 수 있습니다
import pandas as pd
# 데이터프레임 생성
data = {'Name': ['John', 'Emma', 'Mike'],
'Age': [25, 28, 32],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
# 데이터 타입 출력
print(df.dtypes)
# 결과물
# Name object
# Age int64
# City object
# dtype: object
위 코드에서는 dtypes 속성을 사용하여 각 열의 데이터 타입을 출력합니다. 이를 통해 열의 데이터 타입을 파악할 수 있습니다. 출력된 결과에서는 'Name'과 'City' 열은 object(문자열) 타입이고, 'Age' 열은 int64(정수) 타입임을 알 수 있습니다.
9. 마치며
데이터 분석을 위해 사용하는 데이터프레임이 어떤 형태로 되어 있는지 확인을 할 수 있어야 데이터 분석 방향을 잡을 수 있습니다. 오늘 소개한 메서드들을 이용하면 데이터프레임의 정보를 여러 각도에서 확인해 볼 수 있을 겁니다.