1. 모델링: 복잡한 현실세계를 단순화 시켜 포현하는 것, 현실세계를 추상화, 단순화, 명확화 하여 데이터 모델로 표현
2. 모델링의 3가지 관점
- 데이터 관점(어떤 데이터와 관련이 있는지)
- 프로세스 관점(무엇을 해야 하는지)
- 상관 관점(일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지)
3. 데이터 모델이 제공하는 기능: 가시화, 명세화, 구조화된 틀 제공, 문서화, 다양한 관점 제공, 구체화된 표현방법
4. 프로젝트 생명주기에서의 데이터 모델링: 정보전략계획->분석->설계->개발->테스트->전환/이행
5. 데이터 모델링의 3 요소
- 업무가 관여하는 어떤 것(Things)
- 어떤 것이 가지는 성격(Attributes) ->관계
- 어떤 것 간의 관계(Relationships) ->속성
6. 정규화
- 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 이상현상 제거
- 한 테이블의 데이터 용량이 최소화되는 효과
- 정규화된 테이블은 데이터 처리 시 속도가 빨라질 수도 느려질 수도 있음
- 정규화된 데이터 모델은 조회 시에는 처리 조건에 따라 성능이 향상 혹은 저하
- 정규화된 데이터 모델은 입력/수정/삭제 시 무조건 성능이 향상
7. 함수적 종속성: 데이터들이 어떤 기준값에 의해 종속되는 현상, 기준값을 결정자, 종속값을 종속자
8. 반정규화: 정규화된 엔터티, 속성, 관게에 대해 성능향상 등을 위해 중복, 통합, 분리 등을 수행하는 모델링 기법
Numpy 대표 명령어
- np.shape(축의 크기)
- np.ndim(축의 개수)
- np.dtype(각 요소의 타입)
- np.itemsize(각 요소의 타입의 바이트 크기)
- np.size(전체 요소 개수)
- np.zeros(0으로 구성) np.ones(1로), np.empty(초기화되지 않은 N차원 배열 생성)
- np.arange: N 만큼 차이 나는 숫자 생성
- np.linspace: N 등분한 숫자 생성
- np.reshape(m.n): m,n 형식으로 출력
- np.argmax: 모든 요소 중 최대값의 인덱스
- np.cumsum: 모든 요소의 누적합
- np.vstack: axis 0 기준 합치기
- np.hstack: axis 1 기준 합치기
- np.hsplit: 숫자 1개가 들어갈 경우 X개로 등분
- np.hsplit: 리스트로 넣을 경우 axis=1 기준 인덱스로 데이터 분할
- np.where: (조건식(bool값), True일 떄 return1, False일 때 return2) #결과값은 array로
Universial function(unfunc): ndarray 안에 있는 데이터 원소 별로 연산을 수행하는 함수
(다른 함수에 약간의 기능을 덧씌워 사용하는 래퍼함수와 비슷)
Pandas 대표 명령어
- read_excel('경로명', sheet_name) # sheet_name None으로 설정 후 df.values() 키값 시트 이름, 벨류로 concat 가능
- df.sort_values(by = '기준', ascending=False) #오름차순 내림차순 기준 설정
- df.rename(columns = { 'k' : 'key'}) #열 이름 변경
- df. sort_index, df.reset_index #인덱스 정렬 또는 초기화
- df.loc['행 인덱스', '열 인덱스'] # 값 기준 검색, 논리형 bool값을 통한 비교 연산자값 확인 가능
- df.iloc['인덱스 번호', '인덱스 번호'] # 인덱스 값 기준 검색
- df.groupby(by = 'col')
- concat과 merge 차이: concat(단순히 행 또는 열을 붙임), merge(엑셀의 vlookup처럼 특정 조건 기준 붙이기 가능)
- pd.concat([df1, df2], axis= 0 or 1) #axis = 0 기본값, 밑에 붙임 / axis = 1 옆에 붙임
- pd.merge(left_df, right_df, how = 'left', on = '열 이름') # how(left, right, inner, outer) 왼쪽, 오른쪽 기준, 교집합, 합집합
- df.dropna(), df.fillna() # NA값 버리기, 채우기, inplace = TRUE 설정해야 원 데이터 반영
- pd.pivot_table(index = '행 위치 열', columns = '열 위치 열', values = '데이터로 사용할 열', aggfunc = '집계함수')
- pd.read_html('경로명', match = '.+', header= None, index_col = None) #
- pd.mask(bool조건식, True일 때 반환값)
- pd.cut(x(구간을 나눌 배열, 1차원), bins(정수, 순서의 배열), right(우측 경계를 포함할 지 여부), labels(왼쪽부터 이름))
반응형
'국비지원교육 > 교육일지' 카테고리의 다른 글
6주차 교육일지: 코딩 테스트 주요 개념, Git 설정, 마크다운 (0) | 2023.09.11 |
---|---|
5주차 교육일지: Pandas feature engineering (0) | 2023.08.21 |
3주차 교육일지: 파이썬 기초, 선형대수, 웹크롤링 (0) | 2023.07.31 |
2주차 교육일지: 파이썬 기초, 선형대수, 웹 크롤링 (0) | 2023.07.24 |
1주차: 통계학 기초이론 및 선형대수, 보스턴 데이터분석 (0) | 2023.07.21 |