[패스트 캠퍼스] 데이터 분석 부트캠프 16기/학습일지

[패스트캠퍼스] 데이터분석 부트캠프 (3주 차)

루루23 2024. 10. 7. 10:38
반응형

Python 기초

자료형

  1. 숫자 - 정수(int) / 실수(float)
  2. 문자열(str) : mystr = "I'm blogging" ('', """, ''' 사용 가능)
    • 문자열에 덧셈, 곱셈 가능
    • mystr[0:5] ⇢ I'm b : 0 ≤ a < 5 의 값을 불러옴 (마지막 인덱스는 포함 X)
    • mystr[5:] ⇢ blogging : 시작과 끝 생략 가능
    • str format : "Hello, { }".format(mystr)
    • f-string : f'Hello, {mystr}'
    • 문자열함수 : strip, join, split
  3. 리스트 : mylist = [1, 2, 3, [a, b]]
    • .append( ) : 리스트에 항목 추가
    • .sort( ) : 오름차순 정렬, reverse=True 옵션 지정시 내림차순
  4. 튜플 : mytuple = (a, b, c) < 리스트와 비슷하지만 값을 바꿀 수 없다
  5. 딕셔너리 : key-value, mydict = {'name':naver, 'age':40}

 

제어문

  1. if 조건문
    • 연산자 : a>=b, a==b, a
  2. for 반복문
    • for i in range(10): ~
    • range(stop) / range(start, stop, [step])
    • len("Blog") = 4
  3. while 반복문
    • 반복문 내 변수 하나 더 필요 > 복잡도 증가로 for 보다 사용 빈도 낮음
  4. try, except : 에러처리
  5. list/dictionary comprehension
    • list/dictionary 내에 for문 사용
    • ls = [i * 4 for i in range(1,5) if i % 2 == 0]

 

함수

  • 입력값을 받아서 명령을 수행하고 결과를 반환
  • def 함수명(변수1, 변수2, ...): 수행문1 수행문2 ... return 결과 (인풋과 리턴 생략 가능)
  • lambda 변수1, 변수2, ...: 결괏값
    • score = {'민준':80, '서현':75, '도아':40, '기찬':90, '재영':60}
    • sorted_score = sorted(score.items(), key=lambda x:x[1], reverse=True)
    • socre 리스트 내 값들(x)의 두번째 인자를 기준으로 정렬, 내림차순

 

라이브러리

  • random : randint, choice, sample, shuffle, ...
  • datetime : now, date, time, year, month, ...
  • math : abs, round, floor, sqrt, ...
  • sys : version, ...
  • os : getcwd, mkdir, ...

 

 

 

Pandas

DataFrame, Series

  • Series : 1차원 배열과 유사한 데이터 구조로, 단일 열로 이루어짐
    • 데이터와 인덱스로 구성
    • data = pd.Series([25, 30, 35], index=['Alice', 'Bob', 'Charlie'])
  • DataFrame : 2차원 테이블 형식의 데이터 구조, 여러 열과 행으로 구성
    • 여러 시리즈가 결합된 형태
    • data = { 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Gender': ['F', 'M', 'M'] }
    • df = pd.DataFrame(data)

 

데이터 불러오기

    • pd.read_csv ( 파일경로, index_col, usecols )
    • df.to_csv ( 파일경로 ) : 파일 저장
    • read_excel, read_html 로 엑셀과 웹html파일 불러올 수 있음

 

데이터 추출

  • loc / iloc
    • loc : 레이블값을 사용하여 조회 - df.loc[행조건, 열조건]
    • iloc : 위치인덱스를 이용하여 조회
  • df.sort_values( 기준 컬럼, ascending=False/True ) : 오름차순이 기본, False로 지정시 내림차순
  • df [조건식] / df.query('조건식') : 특정 조건을 충족하는 데이터 추출

 

index/row/column 변환

  • index
    • df.rename( ) : 부분 인덱스 변경
    • df.index = [ ] : 전체 인덱스 변경
    • df.set_index(' ') : 해당 칼럼으로 인덱스 설정
    • df.reset_index(drop=True) : 기존 인덱스 삭제하고 싶을 때 drop=True 옵션 사용
  • row
    • pd.concat ( [ data1, data2 ] )
    • df.drop ( 인덱스명, axis=0 ) : 행 제거
    • df4.drop_duplicates ( ) : 중복된 행 제거
  • column
    • 열 추가 : 데이터명[추가할 컬럼명] = 추가할 값
    • df.drop ( 인덱스명, axis=1 ) : 열 제거
    • 데이터명.rename({열이름:바꿀이름, 열이름:바꿀이름, ...}, axis=1)
    • 열 이름 전체 변경 시: 데이터명.columns = 열이름 리스트

 

결측값 처리

  • 확인 : df.isna( ) : 결측값 True로 표시됨 / notna( ) 는 반대
  • 제거 : 데이터명.dropna(axis=0, how='any', subset=None)
    • axis {0:index, 1:columns}
    • how {'any':하나라도 존재하면 제거, 'all':행 모든 값이 결측치면 제거}
    • subset: 행/열의 이름 지정
  • 대치 : df.fillna(method='') / df[컬럼명].fillna()
    • method='ffill' : 바로 위의 값과 동일하게 변경
    • method='bfill' : 바로 아래의 값과 동일하게 변경

 

타입 변환

  • df.dtypes : 데이터 타입 확인
  • df.select_dtypes('int') : 정수 타입의 열만 불러오기
  • df.astype( ) : 타입 변환

 

데이터 집계

  • groupby('기준 칼럼').집계함수
  • crosstab : 범주형 데이터 비교분석할 때 유용
    • pd.crosstab(index=행, columns=열, margins=True/False, normalize=True/False)

 

#데이터분석 #데이터분석부트캠프 #패스트캠퍼스 #패스트캠퍼스부트캠프 #패스트캠퍼스데이터분석부트캠프

 

반응형