반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[python] pandas 데이터 확인 본문

dev-log/python

[python] pandas 데이터 확인

개발하는 오식이 2023. 1. 17. 18:30
반응형

출처 : 나도코딩 https://www.youtube.com/watch?v=PjhlUzp_cU0&t=10533

Data Frame 확인

  • describe()
  • : 계산 가능한 데이터에 대해 Column 별로 데이터의 개숫, 평균, 표준편차, 최소/최대값 등의 정보를 보여줌
import pandas as pd

# excel 파일 열기
df = pd.read_excel('score.xlsx', index_col='지원번호')

# data frame 확인
print(df.describe())
            키          국어       영어        수학       과학       사회
count    8.000000    8.000000    8.000000    8.000000   8.000000   8.000000
mean   188.000000   62.500000   65.625000   66.250000  70.000000  60.625000
std      9.985704   29.519969   26.917533   30.325614  23.754699  32.120032
min    168.000000   15.000000   20.000000   10.000000  35.000000  10.000000
25%    186.250000   40.000000   53.750000   48.750000  51.250000  32.500000
50%    188.000000   67.500000   70.000000   70.000000  77.500000  77.500000
75%    191.750000   82.500000   85.000000   91.250000  87.500000  81.250000
max    202.000000  100.000000  100.000000  100.000000  95.000000  95.000000

이름, 학교와 같은 string은 계산이 안되어서 출력되지 않았다

키워드 의미

count 갯수
mean 평균값
std 표준편차
min 최소값
max 최대값

Data Frame 정보

각 column별 data type이 무엇인지,

현재 메모리가 얼마나 사용됐는지 등의 요약 정보다 출력된다.

# column 별 정보
print(df.info())
#   Column  Non-Null Count  Dtype
---  ------  --------------  -----
 0   이름      8 non-null      object        
 1   학교      8 non-null      object        
 2   키       8 non-null      int64
 3   국어      8 non-null      int64
 4   영어      8 non-null      int64
 5   수학      8 non-null      int64
 6   과학      8 non-null      int64
 7   사회      8 non-null      int64
 8   SW특기    6 non-null      object        
dtypes: int64(6), object(3)
memory usage: 640.0+ bytes

row 앞 몇 줄만 확인

처음 5개의 row를 가져오는 head()

print(df.head())
        이름   학교    키  ...  과학  사회   SW특기
지원번호                 ...

1번    채치수  북산고  197  ...  95  85      Python
2번    정대만  북산고  184  ...  55  25        Java
3번    송태섭  북산고  168  ...  80  75  Javascript
4번    서태웅  북산고  187  ...  75  80         NaN
5번    강백호  북산고  188  ...  35  10         NaN

파라미터에 숫자를 입력하면 그 갯수만큼 출력해준다

print(df.head(7))
        이름   학교    키  ...  과학  사회    SW특기
지원번호                 ...

1번    채치수  북산고  197  ...  95  85      Python
2번    정대만  북산고  184  ...  55  25        Java
3번    송태섭  북산고  168  ...  80  75  Javascript
4번    서태웅  북산고  187  ...  75  80         NaN
5번    강백호  북산고  188  ...  35  10         NaN
6번    변덕규  능남고  202  ...  85  80           C
7번    황태산  능남고  188  ...  40  35      PYTHON

row 뒤에서부터 몇 줄만 확인

마지막 5개를 불러오는 tail()

print(df.tail())
       이름   학교    키   국어  ...  수학   과학  사회    SW특기
지원번호                      ...

4번    서태웅  북산고  187   40  ...  70  75  80     NaN
5번    강백호  북산고  188   15  ...  10  35  10     NaN
6번    변덕규  능남고  202   80  ...  95  85  80       C
7번    황태산  능남고  188   55  ...  45  40  35  PYTHON
8번    윤대협  능남고  190  100  ...  90  95  95      C#

head()와 마찬가지로 파라미터에 숫자를 넘겨주면 그 갯수만큼 불러온다

print(df.tail(7))

list 형태로 출력

print(df.values)
[['채치수' '북산고' 197 90 85 100 95 85 'Python']
 ['정대만' '북산고' 184 40 35 50 55 25 'Java']
 ['송태섭' '북산고' 168 80 75 70 80 75 'Javascript']
 ['서태웅' '북산고' 187 40 60 70 75 80 nan]
 ['강백호' '북산고' 188 15 20 10 35 10 nan]
 ['변덕규' '능남고' 202 80 100 95 85 80 'C']
 ['황태산' '능남고' 188 55 65 45 40 35 'PYTHON']
 ['윤대협' '능남고' 190 100 85 90 95 95 'C#']]

index 정보 가져오기

인덱스를 list형태로 출력해주고, index의 이름은 무엇인지, data type은 무엇인지 알려준다

print(df.index())
Index(['1번', '2번', '3번', '4번', '5번', '6번', '7번', '8번'], dtype='object', name='지원번호')

column 정보 가져오기

column의 이름들과 data type을 알려준다

print(df.columns)
Index(['이름', '학교', '키', '국어', '영어', '수학', '과학', '사회', 
'SW특기'], dtype='object')

row, column 갯수 확인하기

(row갯수, column갯수) 로 출력된다

column에서는 index가 제외된다

print(df.shape)
#(8, 9)

Series 확인

series의 모음이 data frame이었다.

그래서 우선 df 중 ‘키’값으로 정보를 확인해보자

Series 확인하기

print (df['키'].describe())
count      8.000000  # 총 갯수
mean     188.000000  # 평균
std        9.985704  # 표준 편차
min      168.000000  # 최소값
25%      186.250000
50%      188.000000
75%      191.750000
max      202.000000  # 최대값
Name: 키, dtype: float64
  • 디테일 데이터 출력

디테일하게 출력하려면 아래처럼 정(.)과 소괄호()를 붙여주면 된다.

print (df['키'].max())
# 202

print (df['키'].min())
# 168
  • 값이 제일 큰 순서대로 n개 출력

만약 키순으로 제일 큰 3명을 순서대로 출력하고 싶을 땐 nlargest()를 사용하면 된다.

print (df['키'].nlargest(3))
지원번호
6번    202
1번    197
8번    190
Name: 키, dtype: int64
  • 값의 평균 값 출력
print (df['키'].mean())
# 188.0
  • 값을 모두 더한 값 출력
print (df['키'].sum())
# 1504
  • 존재하는(NaN이 아닌) 데이터의 갯수 확인
print(df['SW특기'].count())
# 6 
  • 중복되는 값을 제외한 데이터 확인
print(df['학교'].unique())
# ['북산고' '능남고']
  • 중복되는 값을 제외한 데이터의 갯수 확인
print(df['학교'].nunique())
# 2
반응형
Comments