본문 바로가기

Pandas/응용

(64)
판다스 - 시계열데이터4 : date_range(normalize), timedelta 데이터 생성하기 dup_ts 라는 중복이 있는 시계열 인덱스의 시리즈를 만들었다. 중복된 시계열 그룹화하기 새 데이터 생성하기 date_range는 기본적으로 시작 시간이나 종료 시간의 타임스탬프를 보존한다. 자정에 맞춰 타임스탬프 정규화 자정 기준이라 일별로 range가 생긴 것처럼 정규화되었다. timedelta를 인덱스 설정하기 데이터 불러오기 기준 날짜를 설정한뒤 Timestamp로 자료형을 변환한다. Timestamp 간의 차이는 timedelta64의 자료형으로 생성되며 이를 새 컬럼으로 추가했다. 이를 다시 한번 인덱스로 설정하면 활용할 수 있다. 특정 날짜로 부터 경과한 날짜를 슬라이싱하여 살펴볼 수 있는 것이다.
판다스 - 시계열 데이터3 (날짜 분리) 날짜 데이터 분리 https://steadiness-193.tistory.com/22 판다스 - 열 분리하기 데이터 불러오기 연월일 컬럼을 연 / 월 / 일 세개의 컬럼으로 나눠서 보고 싶다면 방법1 : str.split() 1. 연월일 컬럼의 자료형을 object로 변환한다. 2. 판다스의 자료형과 파이썬의 문자열을 이용해 steadiness-193.tistory.com 이미 열 분리하기 포스팅에서 설명했지만 이는 문자열 기준이며 날짜 데이터를 최대로 활용하기 어렵다. datetime64형을 간단하게 연/월/일별로 분리해보자 데이터 불러오기 바로 이전 포스팅의 주가데이터를 그대로 이용한다. Date 컬럼의 자료형 변환하기 dt 속성 이용하기 dt 속성을 이용하면 연,월,일을 개별적으로 추출할 수 있다...
판다스 - 시계열 데이터2 : date_range, period_range 1. 시계열 데이터 만들기 (timestamp 배열) 판다스의 date_range() 함수를 이용하면 여러 날짜(Timestamp)가 들어있는 배열 형태의 시계열 데이터를 만들 수 있다. pd.date_range(시작, 끝, 개수, 간격) 끝 설정은 None으로 두었고 6개의 3개월 간격의 기간 데이터를 만들어 낼 수 있다. 2. 시계열 데이터 만들기 (period 배열) pd.period_range(시작, 끝, 개수, 간격) date_range와 거의 비슷하다. 차이는 2019-01은 2019년 1월의 전체 기간을 나타내는 것이다. end 조건 없이 개수와 간격으로도 생성할 수 있다. 3시간 길이의 Period 배열이 생성되었다.
판다스 - 시계열 데이터 : Timestamp, Period, strptime, strftime 판다스의 시계열 데이터는 주로 1. 시간 내에서 특정 순간의 타임스탬프(Timestamp) 2. 2007년 1월 전체 기간이나, 2010년 전체 같은 기간(Period) 위 두개를 많이 이용 한다. 물론 시간 간격과 실험 혹은 경과 시간이 있지만 위에 설명한 1,2번을 위주로 살펴보자 데이터 불러오기 날짜 컬럼의 자료형이 문자열이다. 1. 문자열을 Timestamp로 변환 방법1. 불러올때 날짜로 파싱한다. parse_dates를 이용해 Date 컬럼이 있는 순서를 주거나 Date 컬럼명을 리스트안에 넣어서 주면 바로 날짜 데이터로 바뀐다. 방법2. pd.to_datetime 판다스의 to_datetime 메서드를 이용해 새로운 컬럼을 만들며 그 컬럼의 자료형을 datetime64로 바꾼다. 2. 시계열..
판다스 - 교차일람표 : 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 열이 그 다음 층을 이..