분류 전체보기 1188

[Python] Pandas - 데이터프레임 합성 1 (merge / join)

개요 두 개 이상의 DataFrame을 합치는 병합 및 연결 방법을 정리한다. DataFrame 병합(merge) 두 개의 DataFrame이 공통으로 가진 열이나 인덱스를 기준으로 테이블을 합친다. 기준이 되는 열, 또는 행 데이터를 Key라고 한다. 예로 들어 아래와 같은 두 개의 DataFrame이 있다고 하자. df1 = pd.DataFrame({ '고객번호': [1001, 1002, 1003, 1004, 1005, 1006, 1007], '이름': ['둘리', '도우너', '또치', '길동', '희동', '마이콜', '영희'] }, columns=['고객번호', '이름']) df2 = pd.DataFrame({ '고객번호': [1001, 1001, 1005, 1006, 1008, 1001], '..

[Python] Pandas - 데이터프레임 인덱스 조작 2

개요 2022.12.23 - [Python] Pandas - 데이터프레임 인덱스 조작 1에 이어 DataFrame의 index를 다루는 방법을 정리한다. 다중 인덱스가 있는 경우의 인덱싱 DataFrame이 다중 인덱스를 가질 때는 튜플 형식으로 인덱싱해야 한다. 예로 들어 아래와 같은 DataFrame이 있다고 하자. np.random.seed(0) df3 = pd.DataFrame(np.round(np.random.randn(5, 4), 2), columns=[["A", "A", "B", "B"], ["C1", "C2", "C1", "C2"]]) df3.columns.names = ['Cidx1', 'Cidx2'] df3 # 실행 결과 Cidx1 A B Cidx2 C1 C2 C1 C2 0 1.76 0..

[Python] Pandas - 데이터프레임 인덱스 조작 1

개요 DataFrame의 index 다루는 방법을 정리한다. 데이터프레임 인덱스 설정 및 제거 DataFrame에 index로 들어가야 하는 데이터가 일반 데이터 열에 들어가 있거나, 데이터 열에 들어가야 하는 값이 index로 들어가 있는 경우가 있을 수 있다. 이련 경우 set_index, reset_index 함수를 이용해 index와 일반 데이터 열을 교환할 수 있다. set_index 행 인덱스를 제거하고 데이터 열 중 하나를 인덱스로 설정한다. 매개변수로 행 인덱스로 설정한 열을 지정한다. 예로 들어 아래 데이터는 index로 들어가야 하는 데이터가 C1 열에 들어가 있다. np.random.seed(0) df1 = pd.DataFrame(np.vstack([list('ABCDE'), np.r..

[Python] Pandas - 데이터 입출력(JSON)

개요 2022.12.15 - [Python] Pandas - 데이터 입출력(CSV)에 이어서 JSON 데이터를 읽고 쓰는 방법을 정리한다. JSON 데이터 읽기 pandas.read_json 함수를 이용해 JSON 파일 또는 JSON 문자열로부터 데이터를 읽어 들일 수 있다. JSON 문자열 읽기 json_str = """{ "votes": { "funny": 2, "useful": 5, "cool": 1 }, "user_id": "harveydennis", "name": "Jasmine Graham", "url": "http://example.org/user_details?userid=harveydennis", "average_stars": 3.5, "review_count": 12, "type": "..

[Python] Pandas - 데이터프레임 데이터 조작 2

개요 2022.12.20 - [Python] Pandas - 데이터프레임 데이터 조작 1에 이어 데이터 조작 방법을 마저 정리한다. apply 행이나 열 단위로 복잡한 처리를 할 때 사용할 수 있는 함수다. 매개변수로 행 또는 열을 받는 함수를 넣으면 각 열 또는 행을 반복하여 그 함수에 적용시킨다. 예로 들어 아래의 데이터가 있다고 하자. df3 = pd.DataFrame({ 'A': [1, 3, 4, 3, 4], 'B': [2, 3, 1, 2, 3], 'C': [1, 5, 2, 4, 4] }) df3 # 실행 결과 A B C 0 1 2 1 1 3 3 5 2 4 1 2 3 3 2 4 4 4 3 4 각 열의 최대값과 최솟값의 차이는 아래와 같이 계산할 수 있다. df3.apply(lambda x: x.m..

[Python] Pandas - 데이터프레임 데이터 조작 1

개요 Pandas는 NumPy 2차원 배열에서 가능한 대부분의 데이터 처리를 할 수 있다. 어떤 기능을 제공하는지 정리해둔다. count NaN을 제외한 데이터의 개수를 센다. DataFrame의 경우 열 마다 개수를 세기 때문에 누락된 부분을 찾을 때 유용하다. 데이터가 아래와 같다고 하자. np.random.seed(2) df = pd.DataFrame(np.random.randint(5, size=(4, 4)), dtype=float) df.iloc[2, 3] = np.nan df # 실행 결과 0 1 2 3 0 0.0 0.0 3.0 2.0 1 3.0 0.0 2.0 1.0 2 3.0 2.0 4.0 NaN 3 4.0 3.0 4.0 2.0 이 데이터 각 열의 개수는 4 4 4 3이다. df.count(..

[aws cli] Classic LB - 인스턴스 등록/해제

개요 AWS CLI를 사용해 이미 사용 중인 Classic LB에 target instance를 등록하거나 해제하려고 한다. 사용한 명령어를 정리해둔다. 💡 Application LB, Network LB은 이 글에서 다루지 않는다. CLB 정보 확인 describe-load-balancers 명령으로 classic LB의 현재 정보를 확인할 수 있다. 로드밸런서 이름을 지정하지 않으면 모든 로드밸런서 정보를 확인한다. 특정 로드밸런서 정보를 확인하고 싶을 때는 --load-balancer-name 옵션으로 확인할 로드밸런서의 이름을 전달한다. aws elb describe-load-balancers # --load-balancer-names : 로드밸런서 이름 # 예시 aws elb describe-l..

AWS 2022.12.19

[Python] Pandas - 데이터프레임 고급 인덱싱 2

개요 2022.12.17 - [Python] Pandas - 데이터프레임 고급 인덱싱 1에 이어 Dataframe 인덱서 중 하나인 iloc 인덱서에 대해 정리한다. iloc 순서를 나타내는 정수 기반으로 2차원 인덱싱할 때 아래와 같이 사용할 수 있다. df.iloc[x, y] 라벨이 아니라 정수 인덱스만 받는다는 점만 제외하면 loc 인덱서와 동일하다. 예시 아래 DataFrame을 예시로 살펴본다. df = pd.DataFrame(np.arange(10, 22).reshape(3, 4), index=["a", "b", "c"], columns=["A", "B", "C", "D"]) df # 실행 결과 A B C D a 10 11 12 13 b 14 15 16 17 c 18 19 20 21 단일 값 ..

[Python] Pandas - 데이터프레임 고급 인덱싱 1

인덱싱 DataFrame에서 특정 데이터를 골라내는 것 Pandas에서는 2차원 인덱싱을 지원하기 위해 라벨, 라벨 리스트, 슬라이싱을 통해 인덱싱을 할 수 있을 뿐만 아니라 loc, iloc라는 인덱서를 제공한다. 이 글에서는 loc 인덱서에 대해 정리한다. loc 라벨 값을 기반으로 2차원 인덱싱하며 아래와 같이 사용할 수 있다. df.loc[행 인덱스] df.loc[행 인덱스, 열 인덱스] 인덱스는 아래와 같은 값이 올 수 있다. 인덱스 데이터 슬라이스 리스트 boolean series 인덱스 데이터, 슬라이스, 리스트, boolean series를 반환하는 함수 예시 아래 DataFrame을 예시로 하여 정리한다. df = pd.DataFrame(np.arange(10, 22).reshape(3,..

[Python] DataFrame 생성 시 ValueError: If using all scalar values, you must pass an index

현상 DataFrame은 일종의 딕셔너리처럼 생각할 수 있으므로 아래와 같은 코드로 DataFrame을 생성하려고 했다. import pandas as pd d = { 'col_1': 1, 'col_2': 2 } pd.DataFrame(d) 하지만 ValueError: If using all scalar values, you must pass an index가 발생하면서 실패했다. 무엇이 문제였을까? 원인 2022.12.10 - [Python] Pandas - DataFrame 1에서 살펴본 것에 의하면 DataFrame은 공통 인덱스를 가진 column series를 딕셔너리로 묶어놓은 것이다. 즉, Series로 취급할 수 없는 단일 값을 가지는 딕셔너리를 전달한 것이 에러가 발생한 원인이다. 해결 ..

Python 2022.12.16