Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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
Tags
more
Archives
Today
Total
관리 메뉴

archive

[Doit!] 2. 데이터 프레임 이해하기 본문

Data/파이썬 데이터 처리

[Doit!] 2. 데이터 프레임 이해하기

안정민 2023. 5. 9. 13:20

1. 데이터 프레임의 이해

-데이터 프레임은 데이터를 다룰 때 가장 많이 사용하는 데이터의 형태

-행과 열로 구성된 사각형 모양의 표처럼 생김

성별 연령 학점 연봉
남자 26 3.8 2700만원
여자 42 4.3 4000만원
남자 35 2.6 3500만원

-위 표는 4개의 속성에 대한 3명의 자료로 구성이 된 데이터 프레임이라고 할 수 있게 되는 것이다.

 

-열은 속성이다: 세로로 나열이 되는 열은 속성을 나타내며, 열은 컬럼(column) 혹은 변수(variable)이라고 불림

-행은 한 사람의 정보다 : 가로로 나열되는 행은 각 사람의 정보를 나타내며, 행은 로(row) 혹은 케이스 (case)라고 함

-한 사람의 정보는 가로 한 줄에 나열이 된다, 즉 한 행 내에 모두 나열이 된다.

-따라서 무엇이든 하나의 단위가 하나의 행으로 구성이 될 수 있다.

-데이터가 크다는 것은 행 또는 열이 많다는 것이며, 데이터를 분석할 때 행이 많은 케이스보다는 열이 많은 것이 더 중요하다. 즉 비교 대상 (사람)이 많은 것이 중요하지, 비교 대상의 특성(연령, 연봉, 학점, 성별)이 구체화되어 이에 대한 요소가 늘어나는 것은 큰 영향력이 있지 않다는 것이다.

-행이 많을 경우 컴퓨터가 느려지기 때문에 고사양 장비를 구축해야하지만

-열이 많을 경우 분석 방법의 한계에 도달하기 때문에 고급의 분석 방법을 도입해야 한다

 

 

2. 데이터 프레임 만들기

-pandas 패키지 로드) pandas는 데이터를 가공할 때 사용하는 패키지

-데이터 프레임을 만들 때는 pandas의 DataFrame()을 이용

-중괄호{} 를 입력한 다음 변수명, 콜론(:), 변수에 넣을 값을 차례로 입력, 변수명은 따옴표를 이용해 문자 형태로 입력하고, 변수에 넣을 값은 [] 안에 입력한다.

import pandas as pd

df=pd.DataFrame({'name'      :['김지훈','이유진','박동현','김민지'],
                 'english'   :[90,80, 70, 60],
                 'math'      : [50,60, 100, 20]})
print(df);

-특정 변수의 값을 추출하기 위해서는 데이터 변수의 이름 뒤에 []를 입력한 다음 문자 형태로 변수명을 입력하면 된다

import pandas as pd

df=pd.DataFrame({'name'      :['김지훈','이유진','박동현','김민지'],
                 'english'   :[90,80, 70, 60],
                 'math'      : [50,60, 100, 20]})

print(df['english'])

import pandas as pd

df=pd.DataFrame({'name'      :['김지훈','이유진','박동현','김민지'],
                 'english'   :[90,80, 70, 60],
                 'math'      : [50,60, 100, 20]})

print(df['english'])

print(sum(df['english']))
print(sum(df['math']))
print(sum(df['english'])/4)
print(sum(df['math'])/4)

++예제) 다음 표의 내용을 데이터 프레임으로 만들어 출력하고, 이를 이용하여 과일의 가격 평균과 판매량 평균을 구하라

제품 가격 판매량
사과 1800 24
딸기 1500 38
수박 3000 13
import pandas as pd

df=pd.DataFrame({'제품': ['사과', '딸기','수박'],
                 '가격': [1800, 1500, 3000],
                 '판매량': [24, 38, 13]})

print(df)

print(sum(df['가격'])/4)
print(sum(df['판매량'])/4)

실행결과

 

3. 외부 데이터 이용하기

-데이터를 분석할 때에는 직접 데이터를 입력하기 보다 외부에서 생성된 데이터를 불러와 분석하는 경우가 많음

-데이터를 관리할 때 가장 많이 사용하는 엑셀 파일과 CSV 파일을 불러와 데이터 프레임을 만드는 방법과 데이터 프레임을 파일로 저장하는 방법이 있음

 

-<엑셀 파일 불러오기>

- 가장 먼저 해야하는 작업은 현재 사용하고 있는 워킹 디렉토리에 불러올 파일을 삽입하는 것 (스파이더 파일에 불러올 파일 넣기 - 다운로드 위치가 아니라 직접 옮겨줘야 함, 아니면 슬래시를 이용해 파일 경로 입력)

-엑셀 파일을 불러오는 함수는 pandas의 read_excel() 을 이용하면 됨

-read_excel() 함수는 괄호 안에 엑셀 파일 명을 문자열 매개변수로 받아 엑셀 파일을 데이터 프레임으로 만들어 주는 함수

-파일 명을 매개변수로 입력할 때에는 확장자 (.xlsx)까지 입력해야 하고, 파일명 앞뒤에 따옴표(')를 붙여주어야 함

import pandas as pd

df_exam=pd.read_excel('excel_exam.xlsx')
print(df_exam)

//엑셀 파일을 불러와 df_exam 이라는 변수에 할당

-함수 len()은 길이 구하는 함수 -> 이를 이용해서 과목 평균 구하기

- 함수 len()의 매개변수로 엑셀파일을 할당한 변수를 할당할 시 (즉, 데이터 프레임을 할당할 시)  함수 len()은 행의 개수를 반환

import pandas as pd

df_exam=pd.read_excel('excel_exam.xlsx')
examsum=sum(df_exam['math'])/len(df_exam)
print(examsum)

-엑셀 파일의 첫 번째 행이 변수명이 아니라면?

-첫 번째 행에 변수명이 없고 바로 데이터가 입력되어 있으면 첫 번째 행의 데이터가 변수명으로 지정되면서 데이터가 유실되는 문제점이 발생하게 된다

-이럴 때 read_excel()에 header=None을 입력하면 첫 번째 행을 변수명이 아닌 데이터로 인식해 불러오고, 변수명은 0부터 시작하는 숫자로 자동 지정된다

df_exam=pd.read_excel('excel_exam.xlsx', header=None)

-엑셀 파일에 시트가 여러 개 있다면?

-엑셀 파일에 시트가 여러 개 있을 때 특정 시트의 데이터만 불러오려면 sheet_name 파라미터에 시트 이름을 입력하거나 몇 번째 시트를 불러올 지 숫자를 입력하면 된다

-파이썬에서는 숫자를 0부터 세기 때문에 예를 들어 세 번째 시트를 불러오려면 sheet_name=2라고 입력해야 함

//시트명으로 매개변수 전달
df_exam=pd.read_excel('excel_exam.xlsx',sheet_name='Sheet2')
//시트 번호로 매개변수 전달
df_exam=pd.read_excel('excel_exam.xlsx',sheet_name=2)

 

-<CSV 파일 불러오기>

- CSV 파일은 엑셀 뿐만 아니라 R, SAS, SPSS 등 데이터를 다루는 대부분의 프로그램에서 읽고 쓸 수 있는 범용 데이터 파일, 확장자 명에서도 알 수 있듯이 CSV(comma-seperated values) 파일은 쉼표로 구분이 된 형태임

-다양한 프로그램에서 지원하고 엑셀 파일보다 용량이 작아서 데이터를 주고받을 때는 CSV 파일을 자주 이용함

-엑셀 파일과 마찬가지로 가장 먼저 해야 할 일은 워킹 디렉토리에 CSV 파일을 삽입하는 것

-CSV 파일을 불러오려면 pandas의 read_csv()를 이용하면 된다, 괄호 안에는 불러올 파일 명을 입력

import pandas as pd

df_exam=pd.read_csv('exam.csv')
print(df_exam)

-역으로, 데이터 프레임을 CSV 파일로 저장하면 파이썬 이외에도 데이터를 다루는 대다수의 프로그램에서 불러올 수 있음

-데이터 프레임 이름 뒤에 점을 찍고 to_csv()를 입력한 다음 괄호 안에 파일 명을 입력하면, 저장한 파일은 해당 파일 명으로 워킹 디렉토리에 만들어지게 된다.