DataFrames내 저장된 데이터를 살펴보기 위해 다음과 같은 함수를 사용합니다.
df.info()
df.head(n)
df.tail(n)
df.sample(n, random_state)
df.sample(frac)
<실습코드>
import pandas as pd
# 실습 데이터 생성
score = {'name': ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
'score': [100, 95, 80, 85, 97],
'grade': ['A', 'A', 'B', 'B', 'A'],
'subject':['python', 'java', 'python', 'c', 'java']}
score_df = pd.DataFrame(data=score)
print(score_df)
'''
.info() 함수 실습
'''
print('\n<Summary of DataFrame>')
print(score_df.info())
'''
.head() 함수 실습
'''
print('\n<Return the first n rows>')
print(score_df.head(3))
'''
.tail() 함수 실습
'''
print('\n<Return the last n rows>')
print(score_df.tail(2))
'''
.sample() 함수 실습
'''
print('\n<Return a random sample>')
print(score_df.sample())
'''
.sample() 함수의 random_state 인자 실습
'''
print('\n<Return a random sample with random_state>')
print(score_df.sample(2, random_state=10))
'''
.sample() 함수의 flac 인자 실습
'''
print('\n<Return a random sample with flac 50%>')
print(score_df.sample(frac=0.5))
<실행결과>
name score grade subject
0 Jessi 100 A python
1 Emma 95 A java
2 Alex 80 B python
3 Jessi 85 B c
4 Tom 97 A java
<Summary of DataFrame>
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 5 non-null object
1 score 5 non-null int64
2 grade 5 non-null object
3 subject 5 non-null object
dtypes: int64(1), object(3)
memory usage: 288.0+ bytes
None
<Return the first n rows>
name score grade subject
Jessi 100 A python
Emma 95 A java
Alex 80 B python
<Return the last n rows>
name score grade subject
3 Jessi 85 B c
4 Tom 97 A java
<Return a random sample>
name score grade subject
0 Jessi 100 A python
<Return a random sample with random_state>
name score grade subject
2 Alex 80 B python
3 Jessi 85 B c
<Return a random sample with flac 50%>
name score grade subject
2 Alex 80 B python
3 Jessi 85 B c
수치형 데이터와 범주형 데이터의 특징에 대해 이해하고, 서로 다른 접근법을 학습합니다.
수치형(Numerical) 데이터
- 관측된 값이 수치로 측정되는 데이터로 '연속형'데이터라고도 함
- 값의 평균, 중앙값, 표준편차 등과 같은 접근이 의미가 있는 데이터
ex) 키, 몸무게, 시험점수
범주형(Categorical) 데이터
- 범주 또는 항목의 형태로 표현되는 데이터
- 숫자로 표현될 수 있으나, 수치적인 의미를 가질 수 없음
ex) 성별(남/여), 설문조사(1,2,3,4,5점)
df.describe()
df.unique()
df.value_counts()
<실습코드>
import pandas as pd
# 실습 데이터 생성
score = {'name': ['Jessi', 'Emma', 'Alex', 'Jessi', 'Tom'],
'age': [20, 24, 23, 20, 27],
'score': [100, 95, 80, 85, 97],
'grade': ['A', 'A', 'B', 'B', 'A'],
'subject':['python', 'java', 'python', 'c', 'java']}
score_df = pd.DataFrame(data=score)
print(score_df)
'''
describe() 함수 실습
'''
print("\nGenerate Descriptive Statistics")
print(score_df.describe())
'''
범주형 데이터에 대한 describe() 함수 실습
'''
print("\nGenerate Descriptive Statistics for Categorical")
print(score_df[['grade','subject']].describe())
'''
describe(include='all') 함수 실습
'''
print("\nGenerate Descriptive Statistics")
print(score_df.describe(include='all'))
'''
범주형 데이터를 위한 unique() 함수 실습
'''
print("\nThe Unique Values")
print(score_df['subject'].unique())
'''
범주형 데이터를 위한 value_counts() 함수 실습
'''
print("\nThe Value Counts")
print(score_df['subject'].value_counts(normalize=True))
<실행결과>
name age score grade subject
0 Jessi 20 100 A python
1 Emma 24 95 A java
2 Alex 23 80 B python
3 Jessi 20 85 B c
4 Tom 27 97 A java
Generate Descriptive Statistics
age score
count 5.000000 5.000000
mean 22.800000 91.400000
std 2.949576 8.502941
min 20.000000 80.000000
25% 20.000000 85.000000
50% 23.000000 95.000000
75% 24.000000 97.000000
max 27.000000 100.000000
Generate Descriptive Statistics for Categorical
grade subject
count 5 5
unique 2 3
top A python
freq 3 2
Generate Descriptive Statistics
name age score grade subject
count 5 5.000000 5.000000 5 5
unique 4 NaN NaN 2 3
top Jessi NaN NaN A python
freq 2 NaN NaN 3 2
mean NaN 22.800000 91.400000 NaN NaN
std NaN 2.949576 8.502941 NaN NaN
min NaN 20.000000 80.000000 NaN NaN
25% NaN 20.000000 85.000000 NaN NaN
50% NaN 23.000000 95.000000 NaN NaN
75% NaN 24.000000 97.000000 NaN NaN
max NaN 27.000000 100.000000 NaN NaN
The Unique Values
['python' 'java' 'c']
The Value Counts
python 0.4
java 0.4
c 0.2
Name: subject, dtype: float64