본문 바로가기

반응형

😀 기초/판다스(Pandas)

(11)
4.8 시계열 자료 다루기 4.8 시계열 자료 다루기 1. #### DatetimeIndex 인덱스 - 시계열 자료는 인덱스가 날짜 혹은 시간인 데이터를 말한다. - 판다스에서 시계열 자료를 생성하려면 인덱스를 DatetimeIndex 자료형으로 만들어야 한다. - DatetimeIndex는 특정한 순간에 기록된 타임스탬프 형식의 시계열 자료를 다루기 위한 인덱스이다. - 타임스탬프 인덱스의 라벨값이 반드시 일정한 간격일 필요는 없다 - DatetimeIndex 인덱스는 다음과 같이 보조 함수를 사용하여 생성 - pd.to_datetime 함수 - pd.date_range 함수 - pd.to_datetime 함수를 쓰면 날짜/시간을 나타내는 문자열을 자동으로 datetime 자료형으로 바꾼 후 DatetimeIndex자료형 인덱스..
4.7 피봇테이블과 그룹분석 4.7 피봇테이블과 그룹분석 1. #### 피폿테이블 --- - 피봇테이블(pivot table)이란 데이터 열 중에서 두 개의 열을 각각 행 인덱스, 열 인덱스로 사용하여 데이터를 조회하여 펼쳐놓은 것 - 판다스는 피봇테이블을 만들기 위한 pivot 메서드를 제공함 - 첫번째 인수로는 행 인덱스로 사용할 열 이름 - 두번째 인수로는 열 인덱스로 사용할 열 이름 - 마지막으로 데이터로 사용할 열 이름을 넣는다. - 판다스는 지정된 두 열을 각각 행 인덱스와 열 인덱스로 바꾼 후 행 인덱스의 라벨 값이 첫번째 키의 값과 같고 열 인덱스의 라벨 값이 두번째 키의 값과 같은 데이터를 찾아서 해당 칸에 넣는다. - 만약 주어진 데이터가 존재하지 않으면 해당 칸에 NaN값을 넣는다. - 다음 데이터는 각 도시의 ..
4.6 데이터프레임 합성 4.6 데이터프레임 합성 1.### 4.6 데이터프레임 합성 --- - 판다스는 두 개 이상의 데이터프레임을 하나로 합치는 데이터 병합(merge)이나 연결(concatenate) 지원 2. #### merge 함수를 사용한 데이터 프레임 병합 - merge 함수는 두 데이터 프레임의 공통 열 혹은 인덱스를 기준으로 두 개의 테이블을 합친다. - 이 때 기준이 되는 열, 행의 데이터를 키(key)라고 한다. - merge 함수로 위 두 데이터프레임 df1, df2 를 합치면 - 공통 열인 고객번호 열을 기진으로 데이터를 찾아서 합친다. - 이때 기본적으로 양쪽 데이터프레임에 모두 키가 존재하는 데이터만 보여주는 inner join 방식 사용 - outer join 방식은 키 값이 한쪽에만 있어도 데이터를..
4.5 데이터프레임 인덱스 조작 4.5 데이터프레임 인덱스 조작 1.#### 데이터프레임 인덱스 설정 및 제거 - 때로는 데이터프레임에 인덱스로 들어가 있어야 할 데이터가 - 일반 데이터 열에 들어가 있거나 반대로 일반 데이터 열이어야 할 것이 인덱스로 되어 있을 수 있다. - 이 때는 set_index명령과 reset_index 명령으로 인덱스와 일반 데이터 열을 교환할 수 있다. - set_index: 기존의 행 인덱스를 제거하고 데이터 열 중 하나를 인덱스로 설정 - reset_index : 기존의 행 인덱스를 제거하고 인덱스를 데이터 열로 추가 2. #### 다중 인덱스 - 행이나 열에 여러 계층을 가지는 인덱스 즉, 다중 인덱스를 설정할 수도 있다. - 데이터프레임을 생성할 때 columns 인수에 다음 예제처럼 리스트의 리스..
4.4 데이터프레임의 데이터 조작 4.4 데이터프레임의 데이터 조작 1. 데이터프레임의 데이터 조작 - 판다스는 넘파이 2차원 배열에서 가능한 대부분의 데이터 처리가 가능 - 추가로 데이터 처리 및 변환을 위한 다양한 함수와 메서드를 제공 2. #### 데이터 갯수 세기 - 가장 간단한 데이터 분석은 데이터의 갯수를 세는 것이다. - count 메서드를 사용한다. - NaN 값은 세지 않는다. s = pd.Series(range(10)) s[3] = np.nan s #결과 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0 5 5.0 6 6.0 7 7.0 8 8.0 9 9.0 dtype: float64 s.count() #결과 9 - 데이터프레임에서는 각 열마다 별도로 데이터 갯수를 센다. - 데이터에서 값이 누락된 부분을 찾을 때 유..
4.3 데이터프레임 고급 인덱싱 4.3 데이터프레임 고급 인덱싱 1. 데이터프레임 고급 인덱싱 - 데이터프레임에서 특정한 데이터만 골라내는 것을 인덱싱(indexing)이라고 함. - 앞 절에서는 라벨, 라벨 리스트, 인덱스데이터(정수) 슬라이스의 3가지 인덱싱 값을 사용하여 인덱싱을 하는 방법을 공부 - 근데 Pandas는 numpy 행렬과 같이 쉼표를 사용한(행과 열 인덱스) 형식의 2차원 인덱싱을 지원하기 위해 - 다음과 같은 특별한 인덱서(indexer)속성도 제공한다. - loc : 라벨값 기반의 2차원 인덱싱 - iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱 2. #### loc 인덱서 - loc 인덱서는 다음처럼 사용한다. - df.loc[행 인덱싱 값] - 또는 - df.loc[행 인덱싱값, 열 인덱싱값] - 이..
4.2 데이터 입출력 4.2 데이터 입출력 1. 데이터 입출력 - Pandas는 데이터 파일을 읽어 데이터프레임을 만들 수 있다. - 다음처럼 여러가지 포맷을 지원함. - CSV - Excel - HTML - JSON - HDF5 - SAS - STATA - SQL - 여기서 가장 단순하지만 널리 사용되는 CSV(Comman Separated Value) 포맷 입출력에 대해 알아보자 - CSV 파일 포맷은 데이터 값이 쉼표(commna)로 구분되는 텍스트 파일 2. #### %%writefile 명령 - 샘플 데이터로 사용할 CSV 파일은 %%writefile 매직(magic)명령으로 만들어보자. - 이 명령은 셀에 서술한 내용대로 텍스트 파일을 만드는 명령이다. 3. #### CSV 파일 입력 - CSV 파일로부터 데이터를..
4.1장 판다스 패키지의 소개(4.1_데이터프레임 클래스) 4.1 판다스 패키지의 소개(데이터프레임 클래스) 결과 값들이 밀려서, jupyter notebook 으로 다시 보기 1. 데이터프레임 클래스 - 시리즈가 1차원 벡터 데이터에 행방향 인덱스를 붙인 것이라면 - 데이터프레임 클래스는 2차원 행렬 데이터에 인덱스를 붙인 것과 비슷 - 2차원이므로 각각의 행 데이터의 이름이 되는 행 인덱스뿐 아니라 각각의 열 데이터의 이름이 되는 열 인덱스도 붙일 수 있다. 2. #### 데이터프레임 생성 - 데이터프레임을 만드는 방법은 다양. 가장 간단한 방법은 다음과 같다. - 1. 우선 하나의 열이 되는 데이터를 리스트나 일차원 배열을 준비 - 2. 이 각각의 열에 대한 이름(라벨)을 키로 가지는 딕션너리 만든다. - 3. 이데터를 DataFrame 클래스 생성자에 넣..
4장 난수 발생과 카운팅(4.0 ~ 4.1_시리즈 클래스) 4.0 판다스 데이터 분석 1. 판다스 데이터 분석 - 이 장에서는 판다스(Pandas)패키지를 사용하여 데이터를 분석하는 방법을 공부 - 판다스 패키지는 데이터를 다룰 때 빠질 수 없는 중요한 패키지 - 판다스 패키지를 이용하면 다양한 방법으로 데이터를 조작 2. 학습 목표 - 시리즈와 데이터프레임을 만들 수 있다. - 판다를 이용하여 csv 파일을 읽고 쓸 수 있다. - 시리즈와 데이터프레임에서 원하는 데이터를 읽고 갱신하는 방법을 익힌다. - 시지즈와 데이터프레임의 데이터를 조작하는 법을 공부한다 - 멀티 인덱스와 이를 다루는 방법을 학습. - 둘 이상의 데이터프레임을 하나로 합치는 법을 익힌다. - 데이터를 그룹으로 나누어 분석하고 피봇테이블을 만드는 방법을 공부한다. 4.1 판다스 패키지의 소개..
3장 기술 통계(3.4) 3.4 기술 통계 1. 기술 통계 - 넘파이는 다음과 같은 데이터 집합에 대해 간단한 통계를 계산하는 함수를 제공 - 이러한 값들은 통틀어 기술 통계(descirpitive statistics)라고 한다. - 데이터의 개수 - 평균 - 분산 - 표준 편차 - 최댓값 - 최솟값 - 중앙값 - 사분위수 x = np.array([18, 5, 10, 23, 19, -8, 10, 0, 0, 5, 2, 15, 8, 2, 5, 4, 15, -1, 4, -7, -24, 7, 9, -6, 23, -13]) # 데이터의 개수 len(x) # 갯수 # 결과 26 # 표본 평균 np.mean(x) # 결과 4.8076923076923075 # 표본 분산 np.var(x) # 결과 115.23224852071006 np.var..