archive
[Doit!] 3. 데이터 분석 기초 - 데이터 파악 본문
1. 데이터 파악하기
-데이터가 주어졌을 때 가장 먼저 하는 일은 데이터의 전반적인 구조를 파악하는 것
-어떤 변수들이 있는지, 몇 행으로 구성되는지 구조를 살펴보면서 데이터의 특징이 어떠한지 감을 잡음
-이 과정에서 분석 방향의 힌트를 얻게 된다
-데이터를 파악할 때에는 기본적으로 다음 다섯 가지 명령어 사용
함수 | 기능 |
head() | 앞부분 출력 |
tail() | 뒷부분 출력 |
shape | 행 개수, 열 개수 출력 |
info() | 변수 속성 출력 |
describe() | 요약 통계량 출력 |
- <head(): 데이터 앞 부분 확인하기>
-head는 데이터의 앞에서부터 다섯번 째 행까지 출력하는 기능을 수행
-이를 활용하여 데이터의 앞 부분 일부를 출력하면 데이터의 형태를 쉽게 확인할 수 있음
-head()를 이용하려면 데이터 프레임 이름 뒤에 점을 찍은 다음 head()를 추가하면 된다, 괄호 안에 숫자를 입력하게 된다면 입력한 숫자에 해당하는 행까지 데이터를 출력한다
import pandas as pd
df_exam=pd.read_csv('exam.csv')
print(df_exam.head(10))
-<tail(): 데이터의 뒷부분 확인하기>
-위 함수는 데이터의 뒷부분을 출력하는 기능을 하며 head()와 반대로 뒤에서부터 다섯번 째 행까지 출력, 괄호 안에 숫자를 입력한다면 입력한 숫자에 해당하는 행까지 데이터를 출력한다
import pandas as pd
df_exam=pd.read_csv('exam.csv')
print(df_exam.tail(10))
-<shape: 데이터가 몇 행, 몇 열로 구성되는지 알아보기>
-shape는 데이터 프레임의 크기를 알아볼 때 사용
-데이터 프레임에 점을 찍고 shape 키워드를 추가하면 데이터 프레임의 행, 열 개수를 출력한다
-좌표의 형식으로 출력된 두 개의 숫자 중 앞의 숫자는 행, 뒤의 숫자는 열을 나타낸다
-shape는 함수가 아니라 데이터 프레임이 가지고 있는 속성인 어트리뷰트(attribute)이다, 어트리뷰트를 출력할 때에는 명령어 뒤에 괄호를 입력하지 않으니 주의해야 함
import pandas as pd
df_exam=pd.read_csv('exam.csv')
print(df_exam.shape) //(20,5) 출력, 20개의 행과 5개의 열을 가진 데이터 프레임이라는 의미
-<info(): 변수 속성 파악하기>
-info()는 데이터에 들어있는 변수들의 속성을 보여줌, 모든 변수의 속성을 한 눈에 파악하고 싶을 때 info()를 사용한다
import pandas as pd
df_exam=pd.read_csv('exam.csv')
print(df_exam.info())
-① 첫 번째 행의 pandas.core.frame.DataFrame을 보면 df_exam이 pandas로 만든 데이터 프레임이라는 것을 알 수 있다
-② 두 번쨰 행의 20 entries, 0 to 19 를 보면, df_exam이 20행으로 되어있고, 행 번호가 0부터 19까지임을 알 수 있다
-③ 세 번째 행의 total 5 column을 보면 df_exam이 변수 5개로 구성된다는 것을 알 수 있다
-④ 여섯 번째 행부터 데이터 프레임에 들어있는 변수들의 속성이 표시된다. 각 행에 변수 순서(#), 이름, (Column), 변수에 들어있는 값의 개수(Non-Null Count), 속성(Dtype)을 보여준다.
-<describe(): 요약 통계량 구하기>
- describe()는 '평균' 과 같이 변수의 값을 요약한 요약 통계량을 구하는 함수, 요약 통계량을 보면 변수의 특징을 파악하는데에 도움이 된다
import pandas as pd
df_exam=pd.read_csv('exam.csv')
print(df_exam.describe())
출력값 | 통계량 | 설명 |
count | 빈도(frequency) | 값의 개수 |
mean | 평균 | 모든 값을 더해 값의 개수로 나눈 값 |
std | 표준편차(standard deviation) | 변수의 값들이 평균에서 떨어진 정도를 나타낸 값 |
min | 최소값(minimum) | 가장 작은 값 |
25% | 1사분위수(1st quantile) | 하위 25% 지점에 위치한 값 |
50% | 중앙값(median) | 하위 50% 지점에 위치한 값 |
75% | 3사분위수(3rd quantile) | 하위 75% 지점에 위치한 값 |
max | 최대값(maximum) | 가장 큰 값 |
2. 함수와 메서드 차이점
-1) 내장함수: 내장함수는 가장 기본적인 함수 형태로, 함수 이름과 괄호를 입력하여 사용한다
-파이썬에 내장이 되어있는 함수이기 때문에 별도로 패키지를 설치하거나 불러오지 않고 사용이 가능하다
sum(var)
max(var)
-2) 패키지 함수: 패키지 함수는 패키지 이름을 먼저 입력한 다음 점을 찍고 (도트 연산자를 이용하여) 함수 이름과 괄호를 입력하여 사용하는 함수이다
-패키지 함수는 패키지를 로드해야 사용이 가능하다
import pandas as pd
pd.read_csv('exam.csv')
pd.DataFrame({'x':[1,2,3]})
-3) 메서드) 메서드는 '변수가 지니고 있는 함수'이다
-변수명을 입력한 다음, 점을 찍고 메서드 이름과 괄호를 입력하여 사용한다
df.head()
df.info()
- 메서드는 모든 변수에서 사용할 수 있는 것이 아니라, 변수의 자료구조에 따라 사용할 수 있는 메서드가 다르다
-예를 들어 head()는 데이터 프레임에 들어있는 메서드, 따라서 데이터 프레임 자료구조를 가진 변수 df에는 사용이 가능하지만 리스트 자료구조 var에 적용하게 된다면 에러가 발생한다.
-변수의 자료구조는 type() 함수를 이용하면 알 수 있음
type(var) //list 출력
typr(df) //pandas.core.frame.DataFrame 출력
3. 어트리뷰트 (Attribute)
- 어트리뷰트는 '변수가 지니고 있는 값'
- 어트리뷰트를 출력하려면 변수명 뒤에 점을 찍고 어트리뷰트 이름을 입력하면 된다.
-어트리뷰트는 메서드와 마찬가지로 변수가 지니고 있으므로 변수명 뒤에 점을 찍고 입력한다
-반면 메서드와 달리 괄호를 입력하지 않음, 따라서 괄호가 있으면 메소드, 없으면 어트리뷰트라고 생각해도 무관
-어트리뷰트도 메소드와 마찬가지로 변수의 자료구조에 따라 적용 범위가 결정된다
++메소드는 불 쏘기, 칼 휘두르기 등과 같이 캐릭터의 기술로 변수를 이용해 할 수 있는 여러 명령들임
++어트리뷰트는 체력, 공격력처럼 캐릭터의 능력치와 비슷하게 변수의 특징을 알고자 할 때 출력하는 것
4. 변수명 바꾸기
-데이터의 전반적인 특성을 파악하고 나면 본격적으로 분석하기 전에 변수명을 수정하는 작업을 해야한다
-변수명을 이해하기 쉬운 단어로 바꾸면 데이터를 수월하게 다룰 수 있기 때문
-변수명은 pandas의 df.rename() 함수로 변경이 가능하다
-데이터를 변형하는 작업을 할 때는 원본을 직접 사용하는 것보다 복사본을 만들어서 사용하는 것이 좋음, 그래야 작업하다가 오류가 발생하더라도 원 상태로 되돌릴 수 있고, 데이터를 비교하면서 변형되는 과정을 검토할 수 있다. 복사본을 만들 때는 df.copy() 함수를 사용한다
import pandas as pd
df_raw=pd.DataFrame({'var1':[1,2,1],
'var2':[2,3,2]})
print(df_raw)
df_new=df_raw.copy() #복사본 만들기
-변수명을 바꿀 때는 df_new.rename() 함수에 coulmn 파라미터를 추가한 다음 {'기존 변수명' : '새 변수명'} 을 입력하면 됨, 출력 결과를 df.new에 할당하면 변수명이 바뀐 상태로 저장이 된다.
import pandas as pd
df_raw=pd.DataFrame({'var1':[1,2,1],
'var2':[2,3,2]})
print(df_raw)
df_new=df_raw.copy() #복사본 만들기
df_new=df_new.rename(columns={'var2':'v2'})
print(df_new)
5. 파생변수 만들기
-데이터에 들어있는 변수만 이용해 분석을 할 수도 있지만, 변수를 조합하거나 함수를 이용해 새 변수를 만들어 분석을 할 수도 있음, 예를 들어 여러 과목의 시험 점수를 조합해 전과목 평균 변수를 만들어 분석 가능
-기존 변수를 변형하여 만든 변수를 파생변수(derived variable)이라고 한다
-데이터 프레임명에 []을 붙여 새로 만들 변수 명을 입력하고 = 연산자로 계산 공식을 할당하는 형태로 코드를 작성하면 된다
-새로 만든 변수는 데이터 프레임의 오른쪽 끝에 나열된다
import pandas as pd
df=pd.DataFrame({'var1':[4,3,8],
'var2':[2,6,1]})
print(df)
print()
df['var_sum']=df['var1']+df['var2']
print(df)
print()
df['var_mean']=(df['var1']+df['var2'])/2
print(df)
'Data > 파이썬 데이터 처리' 카테고리의 다른 글
쿼리 대강 이해하기 (0) | 2023.07.22 |
---|---|
웹크롤링 라이브러리 대강 정리하기 (0) | 2023.07.15 |
[Doit!] 2. 데이터 프레임 이해하기 (0) | 2023.05.09 |
[Doit!] 1. 파이썬 패키지 이해하기 (0) | 2023.05.08 |