본문 바로가기

Pandas/실전

(47)
판다스 - 미국 신생아 이름 : 이름의 성별 변화 https://steadiness-193.tistory.com/85 판다스 - 신생아 이름 (전처리) 데이터 불러오기 신생아 이름에 관련된 데이터는 메모장에 쉼표로 구분되어 있으며 연도별로 파일이 구성되어 있다. 이렇게 2010년까지 있다. 2002년의 메모장을 살펴보면 이름,성별,출생 수 이렇 steadiness-193.tistory.com 위 포스팅 끝부분에 얻어낸 top1000 데이터프레임을 이용한다. 예전에는 남자 이름으로 선호되던 이름이 시간이 지날수록 여자 이름으로 사용되는 경우를 보자 대표적으로 Lesley, Leslie라는 이름이 그렇다. 우선 lesl로 시작하는 이름을 포함하는 목록을 만들어야 한다. 대소문자 구별을 피하기 위해 우선 lower함수를 적용하고 str.contains()를 ..
판다스 - 미국 신생아 이름 : 마지막 글자의 변화 https://steadiness-193.tistory.com/85 판다스 - 신생아 이름 (전처리) 데이터 불러오기 신생아 이름에 관련된 데이터는 메모장에 쉼표로 구분되어 있으며 연도별로 파일이 구성되어 있다. 이렇게 2010년까지 있다. 2002년의 메모장을 살펴보면 이름,성별,출생 수 이렇 steadiness-193.tistory.com 위 포스팅에서 만든 names 데이터프레임을 이용한다. 여기서 마지막 글자의 변화가 어떻게 바뀌었는지 알아보자 이를 위해 마지막 글자를 담은 시리즈를 만든다. 이 시리즈의 name이 기존 컬럼의 name과 겹칠 수 있으니 last_letter로 이름을 바꿔준다. 이제 위 시리즈를 이용해서 피벗테이블을 만들어보자 last_letters 시리즈로 인덱스를 주었고 피벗테..
판다스 - 미국 신생아 이름2 : 유행 분석, 이름 사용 경향 https://steadiness-193.tistory.com/85 판다스 - 신생아 이름 (전처리) 데이터 불러오기 신생아 이름에 관련된 데이터는 메모장에 쉼표로 구분되어 있으며 연도별로 파일이 구성되어 있다. 이렇게 2010년까지 있다. 2002년의 메모장을 살펴보면 이름,성별,출생 수 이렇 steadiness-193.tistory.com 위 포스팅에서 전처리한 데이터를 가져와 유행 분석을 해보자 우선 연도와 이름에 대한 출생 수(합)를 피벗테이블로 만들면 이름이 너무 많으니(6868 컬럼) 이 중에서 몇개의 이름만 뽑아, (John, Harry, Mary, Marilyn) 그래프로 나타내면 아래와 같이 나온다. 위 4개의 이름은 유행 때는 반짝하다가 점점 인기가 사그라드는 것을 볼 수 있다. 다양한..
판다스 - 미국 신생아 이름 : 전처리 데이터 불러오기 신생아 이름에 관련된 데이터는 메모장에 쉼표로 구분되어 있으며 연도별로 파일이 구성되어 있다. 이렇게 2010년까지 있다. 2002년의 메모장을 살펴보면 이름,성별,출생 수 이렇게 되어있다. 데이터를 불러와 합치기 위해 glob를 불러온다. babynames 폴더에 있는 모든 경로를 paths에 담아온 뒤 파일명에 있는 연도수를 이용해서 데이터프레임을 df_list에 차곡히 쌓은 다음 pd.concat을 이용하여 names라는 최종 데이터프레임을 만든다. 피벗 테이블로 살펴보기 연도와 성별에 따른 출생 수를 볼 수 있다. 이를 시각화해서 보면 1940년대부턴 남아의 출생 수가 계속 더 높아짐을 확인할 수 있다. 각 연도/성별별 이름이, 연도/성별별 전체 출생수에서 차지하는 비율 확인 우선..
판다스 - 시간 범위 수정하고 데이터 밀어내기 : date_range, first_valid_index, shift 데이터 불러오기 에볼라 바이러스에 대한 데이터이다. 각 나라별 발생 케이스가 언제부터인지 입력되어 있다. 이를 그래프로 보자 우리가 보고자 하는 것이 에볼라의 확산 속도라면 출발선이 같아야 비교가 가능할 것이다. 다만 원래 데이터프레임의 일자도 구멍이 난 부분이 많다. 따라서 인덱스부터 다시 설정해야 한다. 기존의 데이터프레임은 2014년 3월 22일부터 2015년 1월 5일까지 총 122행이지만 원래대로라면 290일이 맞다. 이제 새로운 인덱스로 다시 인덱스를 설정하자. 이제 290행으로 잘 맞춰졌으니 각 컬럼별로 2014년 3월 22일 행에 첫 데이터가 나올 수 있게 옮겨야 한다. 이는 첫 발생일에서 각 데이터가 처음 입력된 날을 빼면 된다. 자세한 사용법은 아래의 포스팅 참조 https://stea..
판다스 - 은행의 파산 연도, 분기 : groupby, 시각화 데이터 불러오기 closing Date와 Updated Date를 parse_dates로 넘겨서 자료형을 datetime64로 변경 Closing Date 기준, 분기와 연도 컬럼 생성하기 dt 연산자를 이용하면 손쉽게 분기와 연도를 꺼내올 수 있다. 연도별 그룹화 및 시각화 (연도와 분기)별 그룹화 및 시각화 두 그래프를 비교해보자 연도와 분기로 그룹화 한 시각자료가 더 굴곡이 많다.
판다스 - MoviesLens의 영화 평점 데이터 세가지 데이터프레임이 있다. 이를 SQL의 JOIN처럼 활용해야 한다. 사용자 정보 // 평점 // 영화 정보 사용자 정보 테이블과 평점 테이블은 user_id로 merge한 다음 그 merge된 테이블과 영화 정보 테이블을 다시 한번 movie_id로 merge하면 하나의 대용량 테이블을 만들 수 있다. 사용자 정보 테이블과 평점 테이블은 user_id로 merge inner조인, 겹치는 컬럼은 user_id뿐 이를 다시 영화 정보 테이블과 merge 이제 최종적으로 다루게될 데이터프레임이다. 변수명 = data 1. 성별에 따른 영화의 '평균' 평점 성별과 영화를 각각 보아야하기 때문에 피벗테이블을 이용한다. 3706개의 영화는 너무 많으니 평점 정보가 많이 있는 영화만 추려보자 2. 250건 이상의..