본문 바로가기

Data_Analysis

(294)
판다스 - map : dict.get 데이터 불러오기 who 컬럼의 고유값 [목표 : man, woman은 adult로 변경 / child는 그대로 유지] try1 : 딕셔너리와 map 이용 하나의 컬럼은 시리즈이며 이는 순차적 자료형이기 때문에 map 메서드를 이용할 수 있으며 map 메서드에 딕셔너리를 이용해 기존값을(key) 대체값(value)으로 바꿔줄 수 있다. 단, key에 해당하는 값이 없다면 NaN을 반환한다. try1 실패 try2 : 딕셔너리.get, map 이용 get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다. 딕셔너리 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 편리하다. (출처 : 점프투파이썬) try1과는 방..
판다스 - map map 순차적 자료형에 대해 함수를 적용하는, 내장 함수 map(함수, 순차적 자료) map(func, iterables) map의 첫번째 인자인 함수는 파이썬의 내장함수도 가능하며 사용자 정의 함수나 딕셔너리(사전) 등도 가능하다. map(str, 순차적 자료형) 순차적 자료형을 돌며 자료형을 문자열로 바꿔냈다. 이를 응용해서 리스트로 가져올 수도 있다. 데이터 불러오기 시리즈.map(내장함수 or 사용자 정의함수 or 딕셔너리 등) map은 Pandas Series(column)에 사용할 수 있는 함수로 Series의 각 원소에 연산을 적용 각 원소를 입력으로 받아, 단일 값을 반환 시리즈.map(내장함수) pclass 컬럼의 자료형을 문자열로 바꾸기 지금 pclass의 자료형은 int다. 이를 시리..
판다스 - 백분위수 찾기 : describe(percentiles), quantile 데이터 불러오기 백분위수 구하기 1. 시리즈.describe() * percentiles 옵션 2. 시리즈.quantile 시리즈.describe() describe에 아무 옵션도 없다면 1, 2, 3사분위 수의 값만 나온다. 원하는 백분위수를 보고 싶다면 percentiles 옵션을 추가해준다. quantile quantile은 다른 기술통계 없이 단순히 그냥 원하는 백분위수를 보여준다. 95% 값 구하기 활용 pclass와 성별로 그룹핑한 그룹별 나이 컬럼의 90% 값 구하기
Numpy - 등간격으로 나누기 : np.linspace np.linspace(start, end, num(개수), endpoint=True, retstep=False ) start : 시작 end : 끝 (포함됨) num : 몇 구간으로 나눌 것인가 endpoint : end의 숫자를 포함할 것인지 (기본 True) retstep : 구간의 간격 표시 (기본 False) 필수 옵션 0부터 10까지 5구간으로 같은 간격으로 나누었다. endpoint=False 0부터 10까지 10을 포함하지 않고 5구간이기 때문에 0 / 2 / 4 / 6 / 8로 나뉘었다. retstep=True 0부터 10까지 5구간으로 등간격으로 나눴는데 그 간격이 2.5라는 것을 알려주었다.
Numpy - 배열 순서 섞기 : np.random.shuffle, np.random.permutation [np.random.shuffle] 기존의 배열을 변경 [np.random.permutation] 기존 배열은 냅두고, 순서를 랜덤하게 섞은 배열 객체를 새로 생성 배열 생성 shuffle 원본 배열의 순서가 바뀌었다. permutation 새 배열 x를 만들고 permutation을 실행하면 랜덤하게 순서를 바꾼 객체를 반환한다. 원본 배열은 그대로 이다.
정규표현식 - 원하는 문자열이 있는 행만 남기기 : re.compile, re.search 데이터 불러오기 위 데이터프레임에서 한글, 영문(대/소문자), -, 공백 만 있는 행만 살려보자 (1, 2, 3번 행) re.compile 한글, 영문, 공백과 - 이 아닌 문자열을 찾는 표현식이다. 메타캐릭터에 대한 내용은 아래 포스팅 참조 https://steadiness-193.tistory.com/203 정규표현식 - re.sub : 원하는 문자만 남기고 제거하기 re.sub('찾을 패턴', '찾은 패턴을 변경할 내용', '원본') 주어진 문자열(찾을 패턴)에서 일치하는 모든 패턴을 (변경할 내용으로)바꾼다. 두번째 인자는 특정 문자열이거나 함수가 될 수도 있다. 메� steadiness-193.tistory.com re.search 첫번째 행의 문자열은 Abc!&* 이다. search는 여기서 ..
Matplotlib - x축 눈금 회전 안될 때 : ConversionError 데이터 불러오기 위 xticks는 굳이 90도 회전해서 보여질 필요가 없다. 회전 없이 나타날 수 있게 해보자 try1. xticks에 문자열 지정 ConversionError가 뜬다. try2. plot 메서드의 rot 옵션 이용 rot에 0을 넘기면 해결 된다. * 단, rotation으로 하면 에러 발생 try3. plt.xticks try1의 방법과는 달리 ticks 옵션에 0부터 ndf의 길이를 range로 넘겨준다. 즉, x축 눈금을 0, 1, 2로 준 다음에 labels로 이름을 바꿔주는 것이다.
판다스 - value_counts(normalize=True) 데이터 출처 https://www.kaggle.com/c/titanic/data Pclass 우선 train 데이터프레임의 Pclass의 분포를 시각화 해서 보자 단편적으로는 3등급의 승객 수가 많아 보인다. [그렇다면 각 등급별로 비율을 확인하려면 어떻게 해야할까?] 1. value_counts() Pclass 컬럼의 고유값 개수를 센 뒤 총 개수로 나눠주면 된다. 2. value_counts(normalize=True) 1번의 방법을 한번에 할 수 있다. 바로 normalize 옵션을 True로 넣어주면 된다. (번외) 3. groupby와 size() 이용 위 방법도 가능은 하다. 2번 활용 Pclass가 1인 승객의 생존 여부에 대한 비율을 확인할 수 있다.