728x90
728x90
SMALL
이틀동안 파이썬 기본문법과 넘파이, 판다스에 대해 배웠다. 파이썬을 이번 계절학기 때 배우기도 했고, 판다스와 넘파이는 자주 사용한 것이라 편안하게 수업을 들었다.
다음주까지 이기영강사님과 함께 하는데 강사님 열정과 강의력이 대단하시다!
이번 포스팅에서는 강의자료를 보다가 헷갈리는 부분에 대해서 다시 정리하는 시간을 가져보려고 한다.
1. Dictionary
1.1 Dictionary 조회
- keys() : 딕셔너리의 key만 조회
- values() : 딕셔너리의 값만 조회
- items() : key과 값을 tuple으로 조회
dict_tmp = { 'one':1 , 'two': {'2':2}, 'three': [3,3,3]}
print("키만 조회:", dict_tmp.keys())
print("값만 조회:", dict_tmp.values())
print("키와 값 둘 다 조회:", dict_tmp.items())
키만 조회: dict_keys(['one', 'two', 'three'])
값만 조회: dict_values([1, {'2': 2}, [3, 3, 3]])
키와 값 둘 다 조회: dict_items([('one', 1), ('two', {'2': 2}), ('three', [3, 3, 3])])
1.2 딕셔너리의 각 값을 개별 변수로 할당하기
dict_tmp = { 'one':1 , 'two': {'2':2}, 'three': [3,3,3]}
t1,t2,t3 = dict_tmp.items()
print(t1)
print(t2)
print(t3)
('one', 1)
('two', {'2': 2})
('three', [3, 3, 3])
2. 분석할 수 있는 데이터
- 범주형 데이터
- 명목형 데이터 : 카테고리 또는 범주로 분류되며 순서나 계층 구조가 없다.(ex. 지역, 성별, 동물의 종)
- 순서형 데이터 : 값 사이에 상대적인 순서나 등급이 있다.(ex, 학력수준,고객만족도, 연령대)
- 수치형 데이터
- 이산형 데이터 : 정수 값 또는 이산적인 카운트 값을 가지며 연속적인 범위가 아니다. (ex. 가족 구성원 수 , 매출액, 나이)
- 연속형 데이터 : 실수 값으로 표현되며 어떤 값이든 가질 수 있다. (ex. 키, 무게, 온도)
2.1 분석을 위한 기본구조
- 기본구조 : 2차원
- 행 : 분석단위, 샘플, 관측치, 데이터 건수
- 열 : 정보, 변수, 요인
3. Numpy
주요 용어
- Axis : 배열의 각 축 ( 0 : 행, 1 : 열)
- 데이터 분석에서 Axis=0은 데이터의 건수를 의미함
- Rank : 축의 개수(차원)
- Shape : 축의 길이
- 3차원 배열 읽기 ex. (4,2,3)
- (2,3) 크기의 2차원 배열이 4개
3.1 Reshape
기존 배열을 새로운 형태(Shape)의 배열로 다시 구성
import numpy as np
# 3*4 형태의 2차원 배열
arr1 = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
# 2*6 형태의 2차원 배열로 Reshape, 함수 이용
arr2 = np.reshape(arr1,(2,6))
# 4*3 형태의 2차원 배열로 Reshape, 메서드 이용
arr3 = arr2.reshape(4,3)
3.2 조건에 따라 다른 값 지정하기
문법 : np.where(조건문, 참 값, 거짓 값)
arr1 = np.array([1,2,3,4])
print(np.where(arr1>=3,1,0))
[0 0 1 1]
4. Pandas
4.1 데이터프레임
- 데이터 분석에서 가장 중요한 데이터 구조
- 관계형 데이터베이스의 테이블 또는 엑셀 시트와 같은 형태(2차원 구조)
- 변수들의 집합
4.2 시리즈
- 하나의 정보에 대한 데이터들의 집합
- 데이터프레임에서의 한 개의 열
4.3 정보 확인
- info() : 인덱스, 열, 결측치, 데이터 타입 확인
- describe() : 기초 통계 정보 확인
house.info()
house.describe()
4.4 데이터 정렬
- 정렬 방법
- ascending = True : 오름차순 정렬(기본값)
- ascending = False : 내림차순 정렬
- sort_index() : 인덱스를 기준으로 정렬
house.sort.index()
- sort_values()
# 단일 열 정렬
house.sort_values(by='total_bedrooms')
# 다중 열 정렬
house.sort_values(by=['total_bedrooms','households'],ascending=[True,False])
# 'total_bedrooms' 열을 오름차순으로 정렬하되, 'total_bedrooms' 열 값이 동일한 행들은 'households' 열을 내림차순으로 정렬
4.5 조회
- 조건으로 조회 : .loc[행 조건, 열 이름]
# total_rooms 값이 1000보다 큰 행 조회
house.loc[house['total_rooms']>1000]
- 여러 조건을 만족하는 행 조회
- & 또는 | 연산자 사용
# &
house.loc[(house['total_rooms']>1000) & (house['population']>1000)]
# |
house.loc[(house['total_rooms']>1000) | (house['population']>1000)]
- 값으로 조회
# population 열에 1000,2000만 조회
house.loc[house['population'].isin(['1000','2000'])]
4. 범위안의 데이터만 조회
# population 열에 1000~2000만 조회
house.loc[house['population'].between(1000,2000)]
4.6 집계
~~별에 해당하는 범주형 변수, 매출액 또는 합계 계산
ex. 요일별 매출의 합계
# as_index=True : 집계기준변수를 인덱스로 사용, False 일시 열로 사용
# ['Sales']로 할시 시리즈로 반환
# [['Sales']]로 할시 데이터프레임으로 반환
store.groupby('day_name',as_index=True)['Sales'].sum()
.agg() 사용
- 다양한 집계를 한 번에 수행 가능
store.groupby('day_name')['Sales'].agg(['sum','mean','max','min'])
# 결과는 데이터프레임으로 반환
기초적인 파이썬 문법부터 넘파이, 판다스를 이틀동안 배웠는데 솔직히 너무 기본적인 것부터 배워서 조금 지루했지만 정리할 수 있는 시간이어서 좋았습니다! 그리고 강사님의 열정!! 최고였습니다
에이블스쿨 1주차 끝!
728x90
728x90
LIST
'교육 > KT 에이블스쿨' 카테고리의 다른 글
[KT AIVLE] 분류모델 성능평가지표 (0) | 2023.12.13 |
---|---|
[KT AIVLE] 회귀모델 성능평가지표 (0) | 2023.12.13 |
[KT AIVLE] 1주차 - Git② #3 (0) | 2023.08.19 |
[KT AIVLE] 1주차 - Git① #2 (0) | 2023.08.16 |
[KT AIVLE] 오프닝데이 후기 #1 (0) | 2023.08.08 |