본문 바로가기

Pandas/응용

(64)
판다스 - 데이터 끌어올리기 : first_valid_index, shift https://steadiness-193.tistory.com/82 판다스 - 데이터 밀어내기 (last_valid_index, shift) 데이터 불러오기 우선 Date 컬럼을 보면 날짜의 역순으로 데이터가 진행되고 있다. 또한 2월 10일부터 A컬럼의 데이터가 있으나 B컬럼은 2월 11일, C 컬럼은 2월 12일부터 데이터가 입력되어있다. 이� steadiness-193.tistory.com 위와 반대로 하는 내용 데이터 불러오기 날짜순으로 내려가는 데이터이며 각 컬럼별로 데이터가 입력된 날짜가 다르다. 그래프로 보니 각 출발하는 날짜가 다르다. pd.Series.first_valid_index 유효한 값이 있는 첫번째 인덱스 반환 더 쉽게 보자면 B컬럼이 처음 입력된 일자는 2월 11일로 1번 인덱..
판다스 - 데이터 밀어내기 : last_valid_index, shift 데이터 불러오기 우선 Date 컬럼을 보면 날짜의 역순으로 데이터가 진행되고 있다. 또한 2월 10일부터 A컬럼의 데이터가 있으나 B컬럼은 2월 11일, C 컬럼은 2월 12일부터 데이터가 입력되어있다. 이를 간단하게 그래프로 그려보면 출발선이 다름을 볼 수 있다. 따라서 2월 10일부터 출발을 같이한 자료를 보기위해 데이터를 수정해보자. pd.Series.last_valid_index last_valid_index는 유효한 값이 있는 마지막 인덱스를 반환한다. 더 쉽게 보면 B 컬럼을 예로 들면 3번 인덱스부터 값이 입력되었다. 그 인덱스를 반환하는 것이 pd.Series.last_valid_index 이다. 그렇다면 제일 오래전에 입력된 데이터에서 각 컬럼별 last_valid_index 만큼 아래로..
판다스 - 시계열 : 최초발생일, 진행 정도 파악 데이터 불러오기 에볼라 바이러스의 데이터프레임이다. 데이터프레임을 읽어올 때 parse_dates를 이용해 Date 컬럼의 자료형을 datetime64로 바꿔줬다. ** (parse_dates=[0])도 가능 살펴보니 데이터가 시간 역순으로 정렬되어있다. Date 컬럼에서 최초 발생일을 빼면 에볼라의 진행정도를 알 수 있다. Date컬럼에서 최솟값을 구하면 최초 발생일이 나온다. Date 컬럼에서 최초 발생일을 빼면 진행 정도를 컬럼으로 만들 수 있다. (벡터 - 스칼라) 브로드캐스팅
판다스 - groupby : cut, qcut을 이용해 그룹핑 cut 함수(등간격)와 qcut 함수(같은 크기)는 groupby와 조합하면 데이터 묶음에 대해 변위치 분석이나 버킷 분석을 쉽게 수행할 수 있다. cut, qcut에서 반환된 Categorical 객체를 바로 groupby에 넘길 수 있다. 데이터 불러오기 위 데이터프레임에서 horsepower(마력) 컬럼을 나눠서 그룹핑해보자 1. cut Categorical 객체를 바로 그룹핑에 이용 agg를 이용해 다양하게 분석 가능 보기 불편할 땐 stack을 이용 2. qcut 표본 변위치 기반하여 크기가 같은 버킷을 구하려면 qcut을 사용한다. Categorical 객체를 바로 그룹핑에 이용 agg를 이용해 다양하게 분석 가능 보기 불편할 땐 stack을 이용 필요한 함수를 적절히 groupby와 함께 분..
판다스 - groupby : 색인 단계로 그룹핑하기(계층적 색인) 계층적 색인에서는 축 색인의 단계 중 하나를 이용해 집계할 수 있다. 데이터 만들기 컬럼이 멀티인덱스이므로 컬럼으로 그룹핑할땐 level을 명시해줘야 한다. city를 기준으로 그룹핑 tenor를 기준으로 그룹핑 또는 level=1을 입력해도 동일한 결과가 나온다.
판다스 - groupby : 함수로 그룹핑하기 사전이나 시리즈로 그룹핑하는 것보다 함수로 그룹핑하는 것이 보다 더 일반적이다. 그룹 색인으로 넘긴 함수는 색인값 하나마다 한 번씩 호출되며 반환값은 그 그룹의 이름으로 사용된다. 데이터 만들기 이러한 데이터프레임이 있다. 이를 이름의 길이별로 그룹화하려면 groupby 메서드에 len 함수를 넣어주면 되는 것이다. 내부적으로 모두 배열로 변환되므로 함수를 배열이나 사전 또는 시리즈와 섞어써도 문제 없다.
판다스 - groupby : 사전과 시리즈로 그룹핑하기 사전을 groupby 메서드에 넘길 수 있다. 데이터 만들기 1. 사전으로 그룹핑 컬럼을 기준으로 묶을 것이기 때문에 컬럼과 관련된 사전을 만들어야 한다. axis=1로 컬럼으로 그룹화를 했는데 이 과정에서 사전에 있는 키:값을 기준으로 묶였다. a, b, e는 red / c,d는 blue 2. 시리즈로 그룹핑하기 사전이냐 시리즈냐는 크게 중요하지 않고 효율적으로 활용할 줄 알면 된다.
판다스 - 카테고리 자료형 (category) [범주형 데이터] 카테고리 자료형의 장점 - 용량과 속도 측면에서 굉장히 효율적이다. - groupby 같은 일부 pandas 함수는 범주형 데이터를 사용할 때 더 나은 성능을 보인다. - 메모리도 훨씬 적게 사용한다. 사용하는 경우 - 주로 동일한 '문자열'이 반복되어 데이터를 구성하는 경우 memory usage 확인 천만 개의 값을 가지는 시리즈를 만들었다. 위 시리즈를 카테고리형으로 바꿔주자 메모리 사용량 확인 약 8배나 차이가 난다. 데이터프레임으로도 살펴보자 데이터 불러오기 seaborn의 tips 데이터를 불러와 info를 확인해보자. 총 메모리 사용량은 8.8 KB이며 성별 컬럼은 문자열로 구성되어있고 Female과 Male 두가지 뿐이다. 이럴때 카테고리 자료형으로 변환하는 것이다. 범주..