Snoopy [Python] Pandas - 5. 데이터프레임 출력, 타입, 전치, 미리보기, 기술통계, 통계값(집계/상관계수 등)
Python/Pandas

[Python] Pandas - 5. 데이터프레임 출력, 타입, 전치, 미리보기, 기술통계, 통계값(집계/상관계수 등)

Sooyoon Jeong 2022. 10. 26.

[공식문서]

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

시리즈 속성과 메서드 게시글에서 언급했듯이

어트리뷰트는 괄호를 쓰지 않고, 메서드는 괄호( )를 사용한다.

또한 접근하고자 하는 데이터 뒤에 점을 찍고 사용하며 연결해서 사용할 수도 있다.(메서드체이닝)


1. 인덱스 출력 및 지정

1) 인덱스 출력

데이터프레임명.index

2) 인덱스 지정

데이터프레임명.index = [index로 지정할 것]
# 기본 값은 RangeIndex이다.

2. 컬럼명 출력

데이터프레임명.columns

3. value 값 출력

데이터프레임명.values

모든 값을 출력, numpy array형식으로 출력


4. 데이터 타입 확인

1) 데이터프레임 타입 확인

df.types

2) 컬럼별 데이터 타입 확인

데이터프레임명.dtypes

3) 타입변환

데이터프레임명.astype()

 

  • 문자형으로 변경
df.astype(str)
  • 숫자형으로 변경
df[["컬럼명1","컬럼명2"]].astype(float)
df[["컬럼명1","컬럼명2"]].astype(int)
df['컬럼명'] = pd.to_numeric(df['컬럼명'], errors="coerce")
type(df['컬럼명'].iloc[0])

*errors 옵션을 사용하면 에러가 나는 값을 강제로 변환시켜준다.

 

4) 특정 타입에 대한 값만 선택하여 요약정보보기

데이터프레임명.select_dtypes(include=np.number).info()

5. 데이터프레임 전치

데이터프레임명.T

6. 데이터프레임 미리보기/요약보기

1) 상위 5개 

df.head()

2) 하위 5개

df.tail()

3) 랜덤 5개 추출

df.sample()

랜덤 값을 고정할 수도 있다.

# 랜덤값 고정: random_state 1~42 아무 숫자나 사용해도 상관 없음
# frac = 0.05: 표본을 추출할 비율 (1은 100%, 0.05는 전체에서 5%만 가져오겠다.) 
df.sample(random_state = 42)
df.sample(frac = 0.05,random_state = 42)

4) 요약정보 보기

df.info( )

5) 데이터 차원 확인하기 - (행, 열) 순서

df.shape

 

6) 크기 확인하기 - 빈도수 확인 가능

df.size

*df.shape 결과인 행 값 x 열 값이 출력된다.

df["컬럼명"].size

*해당 컬럼의 개수 출력

df.groupby('컬럼명').size()

*해당 컬럼의 빈도수 출력

 

++ value_counts 를 이용하여 빈도수를 구하는 방법도 있다.

sort까지 진행해보도록 하겠다.

df3.host_name.value_counts().sort_index()

 

7) len

len(df)

*df의 행 개수 출력

 

8) 유일값, 유일값의 개수 확인하기

df["컬럼"].unique()
df.nunique()

단, unique는 시리즈에 nunique는 시리즈와 데이터프레임 모두에 사용할 수 있다.

*unique는 해당 컬럼의 고유값 출력, nunique는 컬럼별 고유값 수 출력


7. 결측치 확인하기

1) 결측치 확인

df.isnull()

2) 결측치 합계

df.isnull().sum()

3) 결측치 비율

df.isnull().mean()

 

4) 결측치 시각화

plt.figure(figsize = (12, 8))
sns.heatmap(df.isnull(), cmap = "gray")

8. 기술통계 값 보기

1) 수치형 데이터

df.describe()

빈도수, 평균, 표준편차, 최대, 최소, 사분위수

Na 값 등 결측치는 사분위수와 개수 등의 정보에서 자동으로 제외된다.

2) 범주형 데이터

df.describe(include = "object")

빈도수, 유일값, 최빈값(top), 최빈값의 빈도수(freq)

 

기술통계값의 일부만 확인할 수도 있다.

이 중에서 count만 가져와보자.

df["Insulin_nan"].describe()["count"]


9. 통계값 확인하기

1) 상관계수

df.corr()

2) sum()

df.sum()

3) mean()

4) max()

5) min()

댓글