본문 바로가기

Pandas

(165)
판다스 - apply, applymap, pipe(응용1) INPUT USE RETURN 시리즈 원소 apply 단일 값, 시리즈 시리즈 객체 (데이터프레임의 행 or 열) 단일 값, 시리즈, 데이터프레임(통합) 데이터프레임의 원소 applymap (동일한 형태의)데이터프레임 데이터프레임 객체 pipe 단일 값, 시리즈, 데이터프레임 데이터 불러오기 데이터 살펴보기 총 891행, 15열 컬럼의 자료형도 확인할 수 있다. 함수 정의 count_missing 함수는 데이터프레임의 컬럼별 null의 개수를 구한다. 우선 결과부터 보자 잘 나온 것을 볼 수 있다. 시리즈로 리턴이 되었으니, applymap은 이용할 수 없다. 그렇다면 pipe를 이용해도 될까? pipe를 이용해도 동일한 결과가 나왔다.(?) 이제 하나하나 뜯어서 보자. apply bool_df가 구해지..
판다스 - apply, applymap, pipe(2) INPUT USE RETURN 시리즈 원소 apply 단일 값, 시리즈 시리즈 객체 (데이터프레임의 행 or 열) 단일 값, 시리즈, 데이터프레임(통합) 데이터프레임의 원소 applymap (동일한 형태의) 데이터프레임 데이터프레임 객체 pipe 단일 값, 시리즈, 데이터프레임 applymap과 pipe를 살펴보자 데이터 불러오기 데이터프레임의 개별 원소에 특정 함수를 매핑할때 applymap을 이용한다. 데이터프레임을 반환한다. * 참고 : 시리즈는 각 원소에 적용할 함수를 지정하기 위한 map 메서드를 가지고 있다. 함수 정의 applymap을 이용해 함수 적용 df의 각 원소에 숫자 10을 더한 값을 원소로 갖는 데이터프레임이 만들어진다. 여기서 apply와의 차이점이 궁금해지는데, apply는 각..
판다스 - apply, applymap, pipe(1) INPUT USE RETURN 시리즈 원소 apply 단일 값, 시리즈 시리즈 객체 (데이터프레임의 행 or 열) 단일 값, 시리즈, 데이터프레임 (통합) 데이터프레임의 원소 applymap (동일한 형태의) 데이터프레임 데이터프레임 객체 pipe 단일 값, 시리즈, 데이터프레임 판다스를 하면서 헷갈리는 메서드 중 하나가 apply라고 해도 과언이 아니다. 예제를 통해 이해해보자 데이터 불러오기 타이타닉 데이터에 ten이라는 컬럼을 추가하고 값을 10으로 모두 맞춰놓았다. 함수 생성 개별 원소에 함수 적용 (시리즈 원소에 함수 적용) : apply df['age'] 시리즈에 두개의 함수를 적용해보았다. add_10 함수를 적용하면 기존 시리즈의 값(원소)에 10씩 더한 새로운 시리즈를 반환한다. add_..
판다스 - 여러 대용량 데이터 처리하기 : glob 이 다섯개의 csv 파일을 불러와 한꺼번에 보고자 한다. glob 라이브러리, glob 메서드 이용 glob 라이브러리의 glob메서드는 특정한 패턴의 이름을 가진 파일을 한번에 읽어들일 수 있다. 방법1. 하나씩 불러와 concat을 이용한다. 방법2. for loop와 list를 이용한다. 차례대로 csv파일을 읽고 읽어서 만들어낸 데이터프레임(df)을 taxi_list_df에 차곡히 쌓는다. taxi_list_df에 쌓인 데이터프레임들을 concat을 이용해 합친다. 위에서 생성했던 taxi 데이터프레임과 taxi_loop_concat 데이터프레임은 동일함을 볼 수 있다.
판다스 - 넓은 데이터 정리하기 : melt 데이터 불러오기 퓨 리서치센터에서 조사한, 미국의 소득과 종교 종교별 소득에 대한 설문 데이터이다. 컬럼은
판다스 - 인덱스로 데이터프레임 병합 : merge, join 데이터 불러오기 인덱스 기준 병합 left_index=True, right_index=True 옵션을 넣으면 왼쪽 데이터프레임의 인덱스와 오른쪽 데이터프레임의 인덱스가 같은 행만 추출한다. (inner 기본 적용) how='outer'를 명시하면 겹치지 않는 인덱스도 보여준다. 인덱스로만 겹치는 데이터를 보고 싶다면 merge보다 간단한 join을 사용할 수 있다. join 위의 merge보다 간단하다. join은 기본적으로 왼쪽 조인을 수행한다. outer도 가능하다. 새 데이터 불러오기 left1과 right1의 인덱스는 다르다 인덱스가 다른 상태에서 명시적 옵션을 넣지 않으면 왼쪽 조인이 기본적으로 수행되지만 값은 NaN만 보인다. a와 b가 있는 행은 모두 잘 조인되었다. 5번행의 group_va..
판다스 - merge 데이터 불러오기 df1의 행은 총 10행, 열은 id, stock_name, value, price df2의 행도 총 10행, 열은 id, name, eps, bps, per, pbr df1과 df2의 겹치는 컬럼은 id컬럼 하나뿐 merge하기 전, id가 겹치는 행만 보고 싶다면? df2의 id리스트를 id_list라는 변수로 가져왔다. isin()을 이용하여 df1의 아이디가 id_list에 들어있는지에 대한 True/False 리스트를 가져왔고 이를 불린 인덱싱하여 df1과 df2의 아이디가 겹치는 행을 볼 수 있다. df1을 기준으로 불린 인덱싱을 했으므로 기준 테이블은 df1임을 볼 수 있다. (컬럼이 df1의 컬럼) 이를 더 간단하게 하는 방법은 그냥 merge를 이용하는 것. merge, ..
판다스 - isin() 데이터 불러오기 sibsp의 값이 3 또는 4 또는 5인 행만 보고 싶다면 방법1. 3개의 불린 리스트를 이용한다. 1. 불린 리스트(mask변수)를 총 3개를 만든다. 2. 이를 데이터프레임 필터 조건으로 넣되, | 를 이용하여 또는으로 활용한다. 방법2. isin 메서드를 사용한다. sibsp가 3또는 4또는 5일때만 True 반환 이 리스트를 이용하여 필터링한다. 방법 1과 동일한 결과가 나왔다.