[Aiffel] 아이펠 15일차 개념 정리 및 회고

Gongsam·2022년 1월 14일
0

1. 데이터 분석

1) EDA

탐색적 데이터 분석(Exploratory Data Analysis)

2) 사용하는 라이브러리

  • seaborn: matplotlib의 상위버전

3) 기본 함수

# csv 파일 읽어오기
pd.read_csv('파일 경로')

# 특정 칼럼 선택
df[칼럼명]

# 조건에 맞는 특정 칼럼 선택
df[df[칼럼명] == 조건]

# 행의 인덱스 재배열. drop을 True로 설정하면 기존 인덱스를 버리고 재설정
df.reset_index(drop=True)

# column의 수
len(df.columns)

# column 명 모아 보기
df.columns

# unique한 지 판단하기 (unique하다면 index로 활용 가능)
len(set(df[column])) == len(df[column])

# 특정 행 보기 - 여러 개를 보고 싶으면 행의 순서를 ,로 구분
df.loc[[int]]

# 여러 행 보기
df.loc[int:int]

# NaN이 몇 개인지 판단하기
df[column].isna().sum()

# pivot table
df[column].isna().sum()

# 특정 행의 특정 컬럼 내용 보기
# 컬럼 명을 list로 넘겨주면 그에 해당하는 모든 값을 list로 반환
df.loc[row,column]

# 각 행의 총합, axis 설정 안하면 column 기준으로 합 반환
df.sum(axis=1)

# column 별 값만 출력
df[column].values

# column 별 값만 출력해서 각 행 별로 합하기
df[column].values.sum(axis=1)

# column에 특정 조건 적용시키기
df[column].apply(lambda x: 조건)

# 원래 있는 column + 따로 list로 만들어둔 column 합해서 출력하고 싶을 때
#[0]을 붙이지 않으면 [[]] 형태라 오류남
df[[[column, column] + list_][0]]

✔✔✔🤔 착각하지 말자
legendary 전체 중 dragon의 비율, flying 전체에서 legendary의 비율이기 때문에 둘은 분모가 다르다!

4) 정규표현식

tokens = re.findall('[A-Z][a-z]*', temp)
  • [A-Z]: 영어 대문자와 매치
  • [a-z]: 소문자의 반복과 매치
    위의 조건에 해당하는 단어를 list로 반환
Counter(list_).most_common()
  • Counter: list_ 안에 들어있는 요소를 세서 dict으로 반환함
  • most_common(): 가장 많이 나온 순서 대로 튜플 형태로 반환함. 괄호 안에 개수를 설정할 수 있음

5) 데이터 분류

  1. 베이스 라인 데이터
    가장 기초적인 방법으로 생성한 모델, 성능의 하한선을 제공한다는 점에서 유의미함.

  2. recall
    값이 높을 수록 맞는데 틀리다고 판단한(FN) 비율이 높음

2. 회고

lms의 난이도가 크게 어렵지 않아서 할만 했다. 그래서 그동안 검색해서 찾아보고 풀었던 기본적인 함수를 정리해봤다. 앞으론 위에 작성한 내용 정도는 기억해서 쓸 수 있었으면 좋겠다.
confusion matrix의 경우 이해는 되는데 뭔가 해석해보라고 하면 잠깐씩 멈칫 할 때가 있어서 더 익숙해져야 할 거 같다. 이 외에 recall 이나 f1 score 같은 개념도 다시 살펴봐야겠다.
그리고 알고리즘 문제 풀었는데 보고 이거 넘파이 쓰면 되지 않나? 이거 콜렉션 쓰면 되지 않나? 하면서도 쓰면 안될 거 같아서 안썼는데 풀이 보니까 다 쓰더라 아는 만큼 활용하려면 정확히 알아야한다는 것만 다시 깨달았다.. 그래도 기업마다 내거는 조건이 다르니까 최대한 많은 풀이를 생각해보자

profile
🐬 파이썬 / 인공지능 / 머신러닝

0개의 댓글