기본정보 & 통계정보 파악


1
import pandas as pd

1. 파일 읽어오기 (csv)

1
df = pd.read_csv('korean-idol.csv')
1
df
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442


2. 기본 행&열 정보 알아보기 (column, index, info)

2-1. column (열) 이름 출력하기

df_name .columns

1
df.columns
Index(['이름', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')


2-2. column (열) 이름 재정의하기

(1) 전체 column 이름

df_name .columns = […]

예: “이름” --> “name”:

1
new_col = ['name', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수']
1
df.columns = new_col
1
df.columns
Index(['name', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')


(2) 개별 column 이름

df_name .rename ( columns = { “old_name” : “new_name” } )


1
df = pd.read_csv('korean-idol.csv')
1
df.columns
Index(['이름', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object') 


1
df = df.rename(columns = {"이름" : "name"})
1
df.columns
Index(['name', '그룹', '소속사', '성별', '생년월일', '키', '혈액형', '브랜드평판지수'], dtype='object')


2-3. index (행) 정보 출력하기

df_name .index

1
df.index
RangeIndex(start=0, stop=15, step=1)

2-4. info (기본적인 column 정보와 데이터 타입)

df_name .info()

Tip: info메소드는 주로 빠진 값 (null 값)과 데이터 타입을 볼 때 활용함

1
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 15 entries, 0 to 14
Data columns (total 8 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   name     15 non-null     object 
 1   그룹       14 non-null     object 
 2   소속사      15 non-null     object 
 3   성별       15 non-null     object 
 4   생년월일     15 non-null     object 
 5   키        13 non-null     float64
 6   혈액형      15 non-null     object 
 7   브랜드평판지수  15 non-null     int64  
dtypes: float64(1), int64(1), object(6)
memory usage: 1.1+ KB

“object” type은 주로 문자형 데이터를 가리킴.


3. 형태 (shape) 알아보기

shape는 tuple형태로 반환되며, 첫번째는 row, 두번째는 column의 숫자를 의미함.

1
df.shape
(15, 8)

4. 상위 5개, 하위 5개의 정보만 보기

상위 5개 row: df_name .head()
하위 5개 row: df_name .tail()
상위 n개 row: df_name .head(n)
하위 n개 row: df_name .tail(n)

1
df.head()
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
1
df.tail()
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
1
df.head(3)
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
1
df.tail(2)
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442


5. 통계 정보 알아보기

통계값은 산술 연산이 가능한 숫자형 (float / int) 인 column을 다룬다

5-1. 전체 통계 정보

df_name .describe()

산술 연산이 가능한 column만 출력됨

1
df.describe()
브랜드평판지수
count 13.000000 1.500000e+01
mean 175.792308 5.655856e+06
std 5.820576 2.539068e+06
min 162.100000 2.925442e+06
25% 174.000000 3.712344e+06
50% 177.000000 4.668615e+06
75% 179.200000 7.862214e+06
max 183.000000 1.052326e+07

5-2. 최소값(min), 최대값(max), 중앙값(median), 최빈값(mode)

최소값: df_name [ ‘col_name’ ] .min()
최대값: df_name [ ‘col_name’ ] .max()
중앙값: df_name [ ‘col_name’ ] .median()
최빈값: df_name [ ‘col_name’ ] .mode()

1
df['키'].min()
162.1
1
df['키'].max()
183.0
1
df['키'].median()
177.0
1
df['키'].mode()
0    178.0
dtype: float64

5-3. 합계(sum), 평균(mean), 분산(var), 표준편차(std)

합계(sum): df_name [ ‘col_name’ ] .sum()
평균(mean): df_name [ ‘col_name’ ] .mean()
분산(variance): df_name [ ‘col_name’ ] .var()
표준편차(standard deviation): df_name [ ‘col_name’ ] .std()

1
df['키'].sum()
2285.3
1
df['키'].mean()
175.7923076923077
1
df['키'].var()
33.879102564102595
1
df['키'].std()
5.820575793175672

5-4. 갯수를 세는 count

df_name [ ‘col_name’ ] .count

1
df['키'].count()
13