본문 바로가기

IT/Data Analysis with python12

시계열_2 5. 기간과 기간 연산며칠, 몇 개월, 몇 분기, 몇 해 같은기간은 pandas.Period 클래스로 표현할 수 있으며 클래스를 생성할 때 문자열이나 정수, 빈도가 필요하다.p = pd.Period("2011", frea="A-DEC")1) Period의 빈도 변환Period와 PeriodIndex 객체는 asfreq 메서드를 사용해 다른 빈도로 변환할 수 있다.p = pd.Period("2011", frea="A-DEC")p.asfreq("M", how="start")Period('2011', 'A-DEC')는 전체 기간을 가리키는 일종의 커서로 생각할 수 있고 이를 월간으로 나눌 수 있다. 회계연도 마감이 12월이 아닌 경우에는 월간 빈도가 달라진다.p = pd.Period("2011", freq=".. 2024. 7. 7.
시계열_1 시계열은 금융, 경제, 생태학, 신경 과학, 물리학 등 여러 다양한 분야에서 사용되는 매우 중요한 구조화된 데이터다. 시간상의 여러 지점을 관측하거나 측정할 수 있는 모든 것이 시계열이다. 대부분의 시계열은 고정 빈도로 표현되며 15초마다, 5분마다, 할 달에 한 번 같은 특정 규칙에 따른 일관적인 간격으로 데이터가 존재한다. 하지만 시계열은 고정된 시간 단위나 단위들 간의 간격으로 존재하지 않고 불규칙적으로 표현될 수도 있다. 시계열 데이터를 표시하고 참조하는 방식은 애플리케이션에 따라 다르며 다음 중 한 유형이 될 수 있다.시간 내에서 특정 순간의 타임스탬프2017년 1월이나 2020년 전체 같은 고정된 기간시작과 끝 타임스탬프로 표시되는 시간 간격. 기간은 시간 간격의 특수한 경우로 생각할 수 있다.. 2024. 7. 7.
데이터 집계와 그룹 연산 데이터셋을 분류하고 각 그룹별로 집계나 변형 같이 어떤 함수를 적용하는 작업은 데이터 분석과정에서 무척 중요한 일이다. 데이터를 불러오고 취합해서 하나의 데이터셋을 준비한 후 그룹 통계를 구하거나 가능하다면 피벗 테이블을 구해 보고서를 만들고 시각화한다. 판다스는 데이터셋을 자연스럽게 나누고 요약하는 groupby라는 유연한 방법을 제공한다.1. 그룹 연산에 대한 고찰다수의 인기 있는 R 프로그래밍 패키지 저자인 해들리 위컴은 그룹 연산에 대해 분리-적용-결합(split-apply-combine)이라는 새로운 용어를 만들었다. 그룹 연산의 첫 번째 단계에서는 Series, DataFrame 같은 판다스 객체나 다른 객체에 들어 있는 데이터를 하나 이상의 키 기준으로 분리한다. 객체는 하나의 축을 기준으로.. 2024. 6. 20.
그래프와 시각화 정보 시각화(plot)는 데이터 분석에서 무척 중요한 일이다. 시각화는 특잇값을 찾거나, 데이터 변형이 필요한지 알아보거나, 모델에 대한 아이디어를 찾기 위한 과정의 일부이기도 하다. 혹자에게는 웹에서 구현하는 시각화가 최종 목표일 수도 있다. 시각화에 대한 사용법은 방대하기 때문에 "무엇을 할 수 있는가" 를 간략하게 짚고 넘어가고자 한다.1. matplotlib APIimport matplotlib.pyplot as pltdata = np.arange(10)plt.plot(data)1) 피겨와 서브플롯matplotlib 에서 그래프는 figure 객체 내에 존재한다. 새로운 figure는 plt.figure로 생성한다.figsize로 파일로 저장할 피겨의 크기과 비율을 지정할 수 있다.fig = pl.. 2024. 6. 20.
데이터 준비하기: 조인, 병합, 변형 1. 계층적 색인계층적 색인(hierarchical indexing)은 판다스의 중요한 기능이며 축에 대해 둘 이상의 색인 단계를 지정할 수 있도록 한다.고차원의 데이터를 낮은 차원의 형식으로 다룰 수 있게 해주는 기능이다.data = pd.Series(np.random.uniform(size=9),index=[["a","a","a","b","b","c","c","d","d"],[1,2,3,1,3,1,2,2,3]]data# 출력결과a 1 0.929616 2 0.316376 3 0.183919 b 1 0.204560 3 0.567725 c 1 0.595545 2 0.964515 d 2 0.653177 3 0.748907 위 객체는 MultiIndex를 색인으로 하는 Series이며 색인의 .. 2024. 6. 17.
데이터 정제 및 준비 1. 누락된 데이터(NA) 처리하기dropna(): 누락된 데이터가 있는 축을 제외한다. 어느 정도 누락 데이터까지 용인할 것인지 지정할 수 있다.fillna(): 누락된 데이터를 대신할 값을 채우거나 ffill이나 bfill 같은 보간 메서드를 적용한다.isna(): 누락되거나 NA인 값을 알려주는 불리언 값을 반환한다.notna(): isna와 반대되는 메서드. NA가 아닌 값에는 True를 반환하고, NA 값에는 False를 반환한다.1) 누락된 데이터 골라내기pandas.isna나 불리언 색인을 사용해 직접 골라내는 방법도 있지만, dropna를 사용하면 매우 쉽게 작업할 수 있다.2) 결측치 채우기누락된 값을 제외하지 않고(잠재적으로 다른 데이터도 함께 버려질 가능성이 있다.) 데이터 상의 '구.. 2024. 6. 14.
데이터 로딩과 저장, 파일 형식 1. 텍스트 파일에서 데이터를 읽고 쓰는법pandas.read_csv를 자주 사용할 것이다.텍스트 데이터를 DataFrame으로 읽어오는 함수는 다음과 같은 몇 가지 옵션을 취한다.색인자료형 추론과 데이터 변환날씨 및 시간 분석반복정제되지 않은 데이터 처리resad_csv의 인수는 50가지가 넘어가니 필요한 것을 찾아 사용할 것, 왠만한 기능은 다 있다.텍스트 파일 조금씩 읽어오기pd.options.display.max_rows = 10, 최대 출력되는 행의 갯수를 10개로 제한nrows: 처음 몇 행만 읽고 싶다면 사용chunksize: 파일을 여러 조각으로 읽어볼 수 있다.데이터를 텍스트 형식으로 기록하기to_csv메서드를 이용하면 데이터를 쉼표로 구분된 형식으로 파일에 쓸 수 있다. 다른 구분자도 .. 2024. 6. 2.
판다스 시작하기: 핵심기능 및 기술 통계 계산 2. 핵심 기능1) 재색인, reindex()obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=["d","b","a","c"])obj2 = obj.reindex(["a", "b", "c", "d", "e"])ffill 같은 메서드를 이용해 누락된 값을 직전의 값으로 채워넣을 수 있따.obj.reindex(np.arrange(6), method="ffill")행, 열 또는 둘 다 변경 가능하다.reindex 인수labels: 색인으로 사용할 새로운 순서, Index 인스턴스나 다른 순차적인 파이썬 자료구조를 사용할 수 있다.index: 새로운 index 지정columns: 새로운 columns 지정axis: 색인으로 사용할 열 지정method: 채움 메서드 ffill,은 직전.. 2024. 6. 2.
판다스 시작하기: Series, DataFrame 0. Pandas판다스는 고수준의 자료구조와 파이썬을 통한 빠르고 쉬운 데이터 분석 도구를 제공한다. for문을 사용하지 않고 데이터를 처리한다거나 배열 기반의 함수를 제공하는 등 넘파이의 배열 기반의 계산 스타일을 많이 차용했다.판다스는 넘파이의 스타일을 많이 차용했지만 가장 큰 차이점은 표 형식의 데이터나 다양한 형태의 데이터를 다루는데 초점을 맞춰 설계했다는 점이다.1. 판다스 자료구조Series일련의 객체를 담을 수 있는 1차원 배열 같은 자료구조import numpy as npimport pandas ad pdfrom pandas import Series, DataFrameobj = pd.Series([4, 7 -5, 3], index = ["d", "b", "a", "c"]) # index의 .. 2024. 6. 2.