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

Python Library185

[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] 데이터프레임의 데이터 조작 데이터프레임의 데이터 조작 Pandas는 Numpy 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 데이터프레임에서는 각 열마다 별도로 데이터 갯수를 센다. 데이터에서 값이 누락된 부분을 찾을 때 유용하다. np.random.seed(2) df = pd.Dat.. 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