데이터 미리보기
판다스에서 불러온, 혹은 만든 데이터를 간단히 확인할 필요가 있을 때 다양한 메소드를 활용한다.
일단 예시를 위해서 데이터를 불러와본다.
import seaborn as sns
import pandas as pd
df = sns.load_dataset('iris')
seaborn의 iris 데이터셋을 불러왔다.
먼저 행과 열의 수를 확인해보려면 shape
을 확인하면 된다.
df.shape
출력은 다음과 같다.
(150, 5)
행과 열 수를 확인하고 데이터 자체를 미리보려면 head
, tail
, sample
을 사용한다.
head
(참고링크)는 위쪽 데이터를 불러와 보여준다.
df.head(5)
출력은 다음과 같다.
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
tail
(참고링크)은 마지막 데이터를 불러와 보여준다.
df.tail(5)
출력은 다음과 같다.
sepal_length sepal_width petal_length petal_width species
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
sample
(참고링크)은 전체 데이터에서 랜덤하게 불러와 보여준다.
df.sample(5)
임의의 출력은 다음과 같다.
sepal_length sepal_width petal_length petal_width species
117 7.7 3.8 6.7 2.2 virginica
133 6.3 2.8 5.1 1.5 virginica
46 5.1 3.8 1.6 0.2 setosa
145 6.7 3.0 5.2 2.3 virginica
27 5.2 3.5 1.5 0.2 setosa
괄호 안에 숫자를 넣어서 해당 갯수만큼 불러오면 되는데, head
와 tail
은 기본값이 5이고, sample
은 1이다.
그 외 데이터 정보
그 외 다양한 데이터 정보를 확인하려면 info
(참고링크)를 이용하면 된다.
df.info()
출력은 다음과 같다.
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 sepal_length 150 non-null float64
1 sepal_width 150 non-null float64
2 petal_length 150 non-null float64
3 petal_width 150 non-null float64
4 species 150 non-null object
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
각 개별로 확인하고 싶다면 index
, columns
, dtypes
등 인스턴스 변수를 활용하면 된다.
df.index
df.columns
df.dtypes
결측치 확인
결측치를 확인하고 싶다면 isnull
혹은 isna
를 활용하면 된다. 두 메소드는 동일한 메소드인데, 결측치를 NULL
로 표기하기도 하고, NA
로 표기하기도 해서 판다스에서는 두 표현 모두 지원한다.
df.isnull()
출력은 다음과 같다.
sepal_length sepal_width petal_length petal_width species
0 False False False False False
1 False False False False False
2 False False False False False
3 False False False False False
4 False False False False False
.. ... ... ... ... ...
145 False False False False False
146 False False False False False
147 False False False False False
148 False False False False False
149 False False False False False
[150 rows x 5 columns]
대략적인 것은 알 수 있지만, 전체적인 그림을 그리기 쉽지 않기 때문에 sum
메소드를 함께 써주면 좋다.
df.isnull().sum()
출력은 다음과 같이 각 열에 따른 결측치를 나타내준다. iris 데이터셋은 결측치가 없어 0으로 나타난다.
sepal_length 0
sepal_width 0
petal_length 0
petal_width 0
species 0
dtype: int64
이러한 결측치는 dropna
(참고링크)를 통해 제거할 수 있다. 기본적으로는 결측치가 있는 행을 제거하지만, axis
매개변수를 통해 결측치가 있는 열을 제거할 수도 있다.
df_cleaned = df.dropna() # df.dropna(axis=1) 은 열 제거
thresh
매개변수를 이용하여 유효 데이터가 일정 개수 이상인 행 또는 열만 유지할 수도 있다.
df_cleand = df.dropna(thresh=2) # 최소 2개의 유효 값이 있는 행만 유지
특정 열에서 결측치가 있는 행만 제거하고 싶다면 subset
매개변수를 사용한다.
df_cleand = df.dropna(subset=["sepal_length", "sepal_width"])
그 외에도 다양한 매개변수를 이용할 수 있다.
'Data Science > Pandas' 카테고리의 다른 글
[Pandas] 값 혹은 인덱스를 기준으로 데이터프레임 정렬 (0) | 2024.12.29 |
---|---|
[Pandas] 판다스를 통한 데이터 시각화(data visualization) (0) | 2024.12.28 |
[Pandas] 데이터프레임 기초 통계량 확인 (0) | 2024.12.26 |
[Pandas] 판다스 csv, 엑셀(xlsx, xls) 불러오기 및 저장하기 (0) | 2024.12.25 |
[Pandas] 판다스 소개 및 시리즈(series)와 데이터프레임(dataframe) (0) | 2024.12.25 |