본문 바로가기
728x90
반응형
SMALL

pandas30

[Pandas] 시계열 자료 다루기 DatetimeIndex 인덱스 시계열 자료는 인덱스가 날짜 혹은 시간인 데이터를 말한다. 판다스에서 시계열 자료를 생성하려면 인덱스를 DatetimeIndex 자료형으로 만들어야 한다. DatetimeIndex는 특정한 순간에 기록된 타임스탬프 (timestamp) 형식의 시계열 자료를 다루기 위한 인덱스이다. 타임스탬프 인덱스의 라벨값이 반드시 일정한 간격일 필요는 없다. DatetimeIndex 인덱스는 다음과 같은 보조 함수를 사용하여 생성한다. pd.to_datetime 함수 pd.date_range 함수 pd.to_datetime 함수를 쓰면 날짜 / 시간을 나타내는 문자열을 자동으로 datetime 자료형으로 바꾼 후 DatetimeIndex 자료형 인덱스를 생성한다. date_str = [.. 2022. 2. 22.
[Pandas] 피봇테이블과 그룹분석 피봇테이블 피봇테이블 (pivot table)이란 데이터 열 중에서 두 개의 열을 각각 행 인덱스, 열 인덱스로 사용하여 데이터를 조회하여 펼쳐놓은 것을 말한다. pandas는 피봇테이블을 만들기 위한 pivot 메서드를 제공한다. 첫번째 인수로는 행 인덱스로 사용할 열 이름, 두번째 인수로는 열 인덱스로 사용할 열 이름, 그리고 마지막으로 데이터로 사용할 열 이름을 넣는다. pandas는 지정된 두 열을 각각 행 인덱스와 열 인덱스로 바꾼 후 행 인덱스의 라벨 값이 첫번째 키의 값과 같고 열 인덱스의 라벨 값이 두번째 키의 값과 같은 데이터를 찾아서 해당 칸에 넣는다. 만약 주어진 데이터가 존재하지 않으면 해당 칸에 NaN 값을 넣는다. data = { "도시": ["서울", "서울", "서울", "부.. 2022. 2. 22.
[Pandas] 데이터프레임 합성 데이터프레임 합성 pandas는 두 개 이상의 데이터프레임을 하나로 합치는 데이터 병합 (merge)이나 연결 (concatenate)을 지원한다. merge 함수를 사용한 데이터프레임 병합 merge 함수는 두 데이터프레임의 공통 열 혹은 인덱스를 기준으로 두 개의 테이블을 합친다. 이 때 기준이 되는 열, 행의 데이터를 키 (key)라고 한다. df1 = pd.DataFrame({ '고객번호': [1001, 1002, 1003, 1004, 1005, 1006, 1007], '이름': ['둘리', '도우너', '또치', '길동', '희동', '마이콜', '영희'] }, columns=['고객번호', '이름']) df1 df2 = pd.DataFrame({ '고객번호': [1001, 1001, 1005,.. 2022. 2. 21.
[Pandas] 데이터프레임 인덱스 조작 데이터프레임 인덱스 설정 및 제거 데이터프레임에 인덱스로 들어가 있어야 할 데이터가 일반 데이터 열에 들어가 있거나 반대로 일반 데이터 열이어야 할 것이 인덱스로 되어 있을 수 있다. 이때 set_index 명령이나 reset_index 명령으로 인덱스와 일반 데이터 열을 교환할 수 있다. set_index : 기존의 행 인덱스를 제거하고 데이터 열 중 하나를 인덱스로 설정 reset_index : 기존의 행 인덱스를 제거하고 인덱스를 데이터 열로 추가 np.random.seed(0) df1 = pd.DataFrame(np.vstack([list('ABCDE'), np.round(np.random.rand(3, 5), 2)]).T, columns=["C1", "C2", "C3", "C4"]) df1 se.. 2022. 2. 16.
[Pandas] 데이터프레임 고급 인덱싱 인덱싱 (indexing) 데이터프레임에서 특정한 데이터만 골라내는 것을 인덱싱 (indexing)이라고 한다. 앞 절에서는 label, label 리스트, 인덱스 데이터 (정수) 슬라이스의 3가지 인덱싱 값을 사용하여 인덱싱한다. 그런데 Pandas는 numpy 행렬과 같이 쉼표를 사용한 (행 인덱스, 열 인덱스) 형식의 2차원 인덱싱을 지원하기 위해 특별한 인덱서 (indexer) 속성도 제공한다. loc 인덱서 df.loc[행 인덱싱값] # 또는 df.loc[행 인덱싱값, 열 인덱싱값] 행 인덱싱값은 정수 또는 행 인덱스데이터이고 열 인덱싱값은 label 문자열이다. 인덱스 데이터 인덱스 데이터 슬라이스 인덱스 데이터 리스트 같은 행 인덱스를 가지는 boolean 시리즈 (행 인덱싱의 경우) 또는 .. 2022. 2. 15.
[Pandas] 데이터 입출력 데이터 입출력 Pandas는 데이터 파일을 읽어 데이터프레임을 만들 수 있다. 여러가지 포맷을 지원한다. CSV Excel HTML JSON HDF5 SAS STATA SQL 가장 단순하지만 널리 사용되는 것은 CSV (Comman Separated Value)이다. CSV 파일 포맷은 데이터 값이 쉽표 (comma)로 구분되는 텍스트 파일이다. %%writefile 명령 샘플 데이터로 사용할 CSV 파일을 %%writefile 매직 (magic) 명령으로 만든다. 이 명령은 셀에 서술한 내용대로 텍스트 파일을 만드는 명령이다. %%writefile sample1.csv c1, c2, c3 1, 1.11, one 2, 2.22, two 3, 3.33, three --> Writing sample1.csv.. 2022. 2. 15.
[Pandas] 데이터프레임 (DataFrame) 데이터프레임 (DataFrame) 시리즈가 1차원 벡터 데이터에 행방향 인덱스 (row index)를 붙인 것이라면 데이터프레임 DataFrame 클래스는 2차원 행렬 데이터에 인덱스를 붙인 것과 비슷하다. 2차원이므로 각각의 행 데이터의 이름이 되는 행 인덱스 (row index) 뿐 아니라 각각의 열 데이터의 이름이 되는 열 인덱스 (column index)도 붙일 수 있다. 데이터프레임 생성 우선 하나의 열이 되는 데이터를 리스트나 일차원 배열을 준비한다. 이 각각의 열에 대한 이름 (라벨)을 키로 가지는 딕셔너리를 만든다. 이 데이터를 DataFrame 클래스 생성자에 넣는다. 동시에 열방향 인덱스는 columns 인수로, 행방향 인덱스는 index 인수로 지정한다. data = { "2015":.. 2022. 2. 15.
[Pandas] 시리즈 (Series) (2) 시리즈와 딕셔너리 자료형 시리즈 객체는 label 값에 의해 인덱싱이 가능하므로 실질적으로 인덱스 라벨 값을 키 (key)로 가지는 딕셔너리 자료형과 같다고 볼 수 있다. 따라서 딕셔너리 자료형에서 제공하는 in 연산도 가능하고 items 메서드를 사용하면 for 루프를 통해 각 원소의 키 (key)와 값 (value)을 접근할 수도 있다. "서울" in s # 인덱스 라벨 중에 서울이 있는가 --> True "대전" in s # 인덱스 라벨 중에 대전이 있는가 --> False for k, v in s.items(): print("%s = %d" % (k, v)) --- 서울 = 9904312 부산 = 3448737 인천 = 2890451 대구 = 2466052 딕셔너리 객체에서 시리즈를 만들 수도 있.. 2022. 2. 15.
[Pandas] 시리즈 (Series) (1) 시리즈 시리즈 (Series) 클래스는 numpy에서 제공하는 1차원 배열과 비슷하지만 각 데이터의 의미를 표시하는 인덱스 (index)를 붙일 수 있다. 데이터 자체는 값 (value)라고 한다. 시리즈 = 값 (value) + 인덱스 (index) 시리즈 생성 데이터를 리스트나 1차원 배열 형식으로 Series 클래스 생성자에 넣어주면 시리즈 클래스 객체를 만들 수 있다. 이 때 인덱스의 길이는 데이터의 길이와 같아야 한다. 다음 예에서 이 “서울”, “부산” 등의 문자열이 인덱스의 값이다. 인덱스의 값을 인덱스 라벨 (label)이라고도 한다. 인덱스 라벨은 문자열 뿐 아니라 날짜, 시간, 정수 등도 가능하다. s = pd.Series([9904312, 3448737, 2890451, 2466052.. 2022. 2. 15.
판다스 (Pandas) 판다스 (Pandas) 판다스 (Pandas)는 python 데이터 처리를 위한 라이브러리입니다. python을 이용한 데이터 분석과 같은 작업에서 필수 라이브러리이다. pip install pandas Pandas는 총 세 가지의 데이터 구조를 사용한다. 시리즈 (Series) 데이터프레임 (DataFrame) 패널 (Panel) 이 중 데이터프레임이 가장 많이 사용된다. https://pandas.pydata.org/pandas-docs/stable/# pandas documentation — pandas 1.4.1 documentation The reference guide contains a detailed description of the pandas API. The reference descr.. 2022. 2. 15.
728x90
반응형
LIST