본문 바로가기

Data_Analysis

(294)
판다스 - 교차일람표 : pd.crosstab() 교차표는 그룹의 빈도를 계산하기 위한 피벗테이블의 한 유형이다. crosstab의 처음 두 인자는 배열이나 시리즈 혹은 배열의 리스트가 올 수 있다. 데이터 불러오기 위 데이터를 국적별로, 잘 쓰는 손별로 빈도를 보자. 이 때 사용하는 것이 pd.crosstab이다. 첫번째 들어가는 것이 국적 -> 인덱스 두번째 들어가는 것이 손 -> 컬럼 여기에 기존 피벗테이블 처럼 margins=True를 넣을 수도 있다. margins_name으로 All 컬럼의 이름을 바꿀 수도 있다. 물론 피벗테이블로도 할 수 있다. tips 테이블로 한번 더 보자 time과 day를 멀티 인덱스로 설정하고 컬럼은 smoker로 넣어줬다. 역시 빈도 수를 손 쉽게 파악할 수 있다. 피벗테이블도 좋지만 그룹 빈도만을 보려면 cro..
판다스 - pivot_table : xs 인덱서 2 https://steadiness-193.tistory.com/54?category=947982 판다스 - pivot_table : xs 인덱서 https://steadiness-193.tistory.com/53 판다스 - pivot_table(피벗 테이블2) 피벗테이블 메서드(옵션)들을 상세히 살펴보자 데이터 불러오기 기본 피벗테이블 클래스별 / 성별별로 나이의 평균을 알 수 있다. va steadiness-193.tistory.com 이전 포스팅과 이어집니다. 데이터 불러오기 xs 인덱서는 기본값으로 행 인덱스에 접근하고 축 값은 axis=0으로 자동 설정된다. 1. 열 출력 (axis=1) 이렇게 mean열만 출력할 수 있다. 여기서 이제 더 세부적으로 보고 싶다면 튜플을 이용한다. mean 컬럼 ..
판다스 - pivot_table : xs 인덱서 https://steadiness-193.tistory.com/53 판다스 - pivot_table(피벗 테이블2) 피벗테이블 메서드(옵션)들을 상세히 살펴보자 데이터 불러오기 기본 피벗테이블 클래스별 / 성별별로 나이의 평균을 알 수 있다. values='age'컬럼을 넣었기 때문이다. aggfunc는 default가 평균값이다 steadiness-193.tistory.com 이전 포스팅의 피벗테이블에서 이어진다. 데이터 불러오기 xs 인덱서는 기본값으로 행 인덱스에 접근하고 축 값은 axis=0으로 자동 설정된다. 1. 행 출력 .xs(행 인덱스) class에서 First에 해당하는 열만 가져왔다. 만약 여기서 female만 보고 싶다면? .xs((행 인덱스, 행 인덱스)) 두개의 인덱스의 값을 튜플..
판다스 - pivot_table (피벗 테이블2) 피벗테이블 메서드(옵션)들을 상세히 살펴보자 데이터 불러오기 기본 피벗테이블 클래스별 / 성별별로 나이의 평균을 알 수 있다. values='age'컬럼을 넣었기 때문이다. aggfunc는 default가 평균값이다. (즉, 생략 가능) 옵션에 여러개를 넣으면 어떻게 될까? 우선 aggfunc에 두개의 함수를 넣었다. 열 구조가 2중 멀티 인덱스가 된다. mean함수와 sum함수가 한 층을 이루고 female과 male이 다음 층으로 사용된다. 조금 더 여러개로 넣어보자 사실 columns에 넣은 것은 survived뿐이지만 다소 복잡해 보이는 멀티인덱스가 되었다. 우선 가장 먼저 집계함수인 mean, max 가 한 층을 이루고 데이터 값을 구분하는(values) age와 fare 열이 그 다음 층을 이..
판다스 - pivot_table (피벗 테이블) 피벗테이블은 데이터 요약화 도구로써 하나 이상의 키로 수집해서 어떤 키는 로우에, 어떤 키는 컬럼에 나열해서 데이터를 정렬한다. groupby 기능을 사용하여 계층적 색인을 활용한 재형성 연산을 가능하게 해준다. 데이터 불러오기 요일과 흡연 / 비흡연별로 나머지 컬럼들의 평균값들을 살펴보자 이렇게 인덱스에 원하는 컬럼을 넣어주면 볼 수 있다. 값을 연산하는 aggfunc은 기본값이 'mean'이므로 평균값들을 보여준다. tip과 size에 대해서만 집계를 하고 날짜와 시간별로 그룹을 지어본다면 size와 tip 컬럼에 대해서만 나왔으며 이를 다시 한번 흡연/비흡연 별로 나눠서 볼 수 있다. 인덱스는 시간과 날짜로 설정했다. margins=True margins=True는 부분합 컬럼을 포함하게 만든다. ..
Numpy - 브로드캐스팅 Numpy의 브로드캐스팅 전에 행렬의 곱을 알아야한다. 기존에 배웠던 행렬의 곱은 이러한 원칙이 지켜져야만 한다. Numpy의 브로드캐스팅은 이러한 원리와 비슷하다. 곱이 아닌 합으로 본다면 이렇게 볼 수 있다. [브로드캐스팅 규칙] [Rule] 2차원과 1차원의 연산 1. 이어지는 각 차원에 대해 축의 길이가 일치 2. 둘 중 하나의 길이가 1 1번 혹은 2번의 경우에는 두 배열은 브로드캐스팅 호환이다. 브로드캐스팅은 누락된 혹은 길이가 1인 차원에 대해 수행된다. https://numpy.org/doc/stable/user/theory.broadcasting.html#array-broadcasting-in-numpy Array Broadcasting in Numpy — NumPy v1.18 Manua..
Numpy - 3차원 axis 이해하기 3차원 텐서를 이용하기 위해 데이터를 불러온다. z는 (4행, 3열)의 2차원 데이터가 3개가 있다는 뜻이다. 위 텐서의 shape은 (3, 4, 3)으로서 (차원, 행, 열)로 보면 쉽다. axis는 따라서 0, 1, 2의 값을 가진다. 차원=0 / 행=1 / 열=2 축을 이용하기 위해 np.sum()으로 살펴보겠다. axis = 0 axis = 0은 차원을 따라서 압축하는 것이다. 36의 값은 0 + 12 + 24의 결과값이 된다. 또한 기존 (3, 4, 3)의 shape에서 0번째 축을 따라서 압축했으므로 남는 것은 (4, 3)의 2차원 행렬이 된다. axis=1 axis=1 은 행을 따라서 압축하는 것이다. 18은 0 + 3 + 6 + 9의 합으로 나온 결과값이다. 또한 기존 (3, 4, 3)의 ..
판다스 - 멀티인덱스 : loc, xs 인덱서 데이터 불러오기 원본 데이터프레임을 class와 성별별로 그룹화했다. 맛보기로 살펴보면 3번 클래스의 남자 평균 연령은 26세인 것을 볼 수 있다. 그렇다면 이들의 인덱스는 어떻게 구성되어있을까 예상대로 튜플로 구성된 멀티인덱스임을 볼 수 있다. 그렇다면 하나의 그룹만 보고 싶을 땐 어떡할까? 이럴 때는 loc 인덱서를 이용한다. 예를들어 First 클래스의 데이터만 보고 싶다면 이렇게 이용하면 된다. 추가적으로 Second 클래스의 여성의 데이터만 보고 싶다면 loc 인덱서에 튜플을 넘겨주면 된다. 시리즈가 나오며 원하는 데이터를 뽑아냈다. 만약 클래스가 아닌 성별로만 보고 싶다면 어떻게 할까? 안쪽의 인덱스이므로 에러가 나온다. 이때 이용하는 것이 바로 xs 인덱서다. level에 성별 컬럼이라고 명..