Python/NumPy | Pandas 72

[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(..

[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] Pandas - 데이터 입출력(CSV)

데이터 입출력 Pandas는 데이터 파일을 읽어서 DataFrame을 만들거나 DataFrame을 데이터 파일로 내보낼 수 있다. 지원하는 형식은 CSV, Excel, HTML, JSON, HDF5, SAS, STATA, SQL 등이 있다. 이 글에서는 CSV를 위주로 다루겠다. %%writefile %%writefile 명령은 셀에서 서술한 내용을 텍스트 파일로 만든다. %%writefile test.csv c1, c2, c3 1, 1.11, one 2, 2.22, two 3, 3.33, three # 실행 결과 Writing test.csv CSV 파일 읽기 pandas.read_csv 함수를 사용하여 CSV 파일로부터 데이터를 읽어 들일 수 있다. 매개변수로 파일의 이름을 전달한다. pd.read_..

[Python] Pandas - DataFrame 2

개요 2022.12.10 - [Python] Pandas - DataFrame 1에 이어서 DataFrame에 대해 정리한다. 열 인덱싱 DataFrame은 column label을 키로 하고, column series를 값으로 하는 딕셔너리와 비슷하다. 따라서 column label을 사용해 인덱싱할 수 있다. 한 개의 컬럼을 지정하면 Series가, 리스트로 두 개 이상의 컬럼을 지정하면 DataFrame이 반환된다. data = { "2015": [9904312, 3448737, 2890451, 2466052], "2010": [9631482, 3393191, 2632035, 2431774], "2005": [9762546, 3512547, 2517680, 2456016], "2000": [9853..

[Python] Pandas - DataFrame 1

DataFrame DataFrame은 2차원 행렬 데이터에 인덱스를 붙인 것과 같다. 각 행에 행 인덱스(row index), 열에는 열 인덱스(column index)를 붙일 수 있다. DataFrame 생성 DataFrame을 간단히 생성하는 방법은 다음과 같다. 1. 힌 개의 열이 될 데이터를 리스트나 1차원 배열로 준비한다. 2. 열에 대한 이름을 키로 가지는 딕셔너리를 생성한다. 3. 데이터를 DataFrame 생성자로 전달한다. 열 인덱스는 columns 인수로, 행 인덱스는 index 인수로 지정한다. data = { "2015": [9904312, 3448737, 2890451, 2466052], "2010": [9631482, 3393191, 2632035, 2431774], "2005"..

1 ··· 3 4 5 6 7 8