archive
[Doit!] 2. 데이터 프레임 이해하기 본문
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()를 입력한 다음 괄호 안에 파일 명을 입력하면, 저장한 파일은 해당 파일 명으로 워킹 디렉토리에 만들어지게 된다.
'Data > 파이썬 데이터 처리' 카테고리의 다른 글
쿼리 대강 이해하기 (0) | 2023.07.22 |
---|---|
웹크롤링 라이브러리 대강 정리하기 (0) | 2023.07.15 |
[Doit!] 3. 데이터 분석 기초 - 데이터 파악 (0) | 2023.05.10 |
[Doit!] 1. 파이썬 패키지 이해하기 (0) | 2023.05.08 |