Python
-
[pandas] DataFrame melt 알아보기Python 2024. 5. 17. 22:31
- 목차 키워드.- Pivot Table 들어가며.이번 글에서는 Pandas DataFrame 의 melt 함수에 대해서 알아보도록 하겠습니다.melt 는 Pivot Table 을 row-by-row 형식으로 변경할 수 있습니다.예를 들어, 아래 이미지와 같이 user 와 item 에 해당하는 DataFrame 이 존재한다고 가정하겠습니다. 위 DataFrame 은 row-by-row 형식으로 user 와 item 의 관계를 보여줍니다.이는 user 와 item 각각의 Column 으로 설정하죠. 위 DataFrame 의 Pivot Table 형식은 아래와 같습니다.Pivot Table 의 index 는 user, column 은 item 이 됩니다. 이 상황에서 melt 함수를 사용하면 Pivot Ta..
-
[Pandas] DataFrame loc, iloc 알아보기Python 2024. 4. 19. 06:16
- 목차 키워드.Locataion by Label or by Integer. 들어가며.Pandas 의 DataFrame 은 loc, iloc 을 활용한 Selection 방식이 존재합니다.loc 와 iloc 는 Location by Label, Location by Integer 의 약자인데요.loc 와 iloc 는 통해서 Series 나 Sub DataFrame 를 생성할 수 있습니다.이번 글에서는 loc 와 iloc 를 활용하는 예시들과 함께 설명을 이어가도록 하겠습니다. loc.loc 는 Label 을 활용하여 DataFrame 을 Selection 할 수 있습니다.Label 이란 Index 또는 Column 의 실제 이름을 의미합니다.간단히 아래의 예시를 살펴보겠습니다.아래 예시는 3개의 Row ..
-
[Pandas] Boolean Indexing 알아보기Python 2024. 4. 15. 06:24
- 목차 키워드.Boolean Mask.Selection. 들어가며.Pandas DataFrame 에서 특정 Cell, Row, Column, Subset 를 획득하는 여러가지 방식이 존재합니다.그렇기 때문에 DataFrame 을 능숙하게 다루기 위해서 익숙해져야할 여러 요소들이 있습니다.이번 글에서는 DataFrame 에서 Subset 를 추출하는 여러가지 방식들에 대해서 알아보도록 하겠습니다. DataFrame Subset 추출하기.DataFrame 의 Subset 를 추출하기 위해서 사용되는 몇가지 방식을 소개합니다.1. Python List2. Series3. DataFrame세가지 방식이 존재합니다. 먼저 DataFrame 을 생성합니다.Student 와 관련된 DataFrame 을 간단히 생..
-
[Pandas] DataFrame pd.merge 알아보기 (Join)Python 2024. 4. 9. 06:40
- 목차 키워드.JoinDataFramehowonleft_index & right_index 들어가며.이번 글에서는 두 DataFrame 을 Join 하는 merge Function 에 대해서 알아보려고 합니다. 기본적인 사용법.pd.merge 의 기본적인 사용법은 아래와 같습니다.SQL 의 Join 쿼리의 사용법과 유사합니다.두개의 DataFrame 이 있고 서로 공유하는 하나의 Column 이 있다면 공통의 Column 을 기준으로 pd.merge 가 동작합니다.import pandas as pdleft_data = [["Andy", 32],["Bob", 12],["Chris", 44],["Daniel", 25]]right_data = [["Andy", "Seoul"],["Bob", "LA"],["C..
-
[Python] yield 알아보기 ( generator )Python 2024. 4. 6. 10:36
- 목차 들어가며. 이번 글에서는 파이썬의 yield 구문에 대해서 알아보려고 합니다. yield 는 파이썬의 함수 내부에서 사용되는 구문입니다. 즉, 함수 외부에서는 사용할 수 없으며 그 성격이 return 키워드와 유사합니다. yield 가 사용된 함수는 generator 라고 불리게 되는데요. generator 는 iterator 를 손쉽게 만들어주는 파이썬의 내장된 기능입니다. 이번 들에서는 yield 와 generator 그리고 이와 관련된 여러 예시들을 살펴볼 예정입니다. yield. yield 의 사전적인 의미는 "산출하다." 입니다. 그리고 산출이란 무언가를 생산하고 그 결과를 외부로 제공한다는 의미를 가지죠. yield 는 함수에서만 사용되는 키워드인데요. yield 가 사용된 함수는 g..
-
[Numpy] copy & view 알아보기 (Shallow, Deep Copy)Python 2024. 3. 18. 07:05
- 목차 키워드.Shallow & Deep Copy. Copy & View.Numpy 의 ndarray 는 copy 와 view 라는 함수를 제공합니다.Numpy 의 copy 와 view 함수는 ndarray 를 복사하는 기능을 수행하는데요.copy 는 Shallow Copy , view 는 Deep Copy 기능을 제공합니다. Shallow Copy.프로그래밍에서 Copy 는 Shallow 와 Deep Copy 로 나뉘어집니다.각 Copy 는 우리말로 얕은 복사와 깊은 복사라고 하는데요.Shallow Copy (얕은 복사) 로 복사된 데이터는 메모리에 상주하는 원본 객체의 레퍼런스를 유지합니다.반면 Deep Copy (깊은 복사) 는 원본 객체의 레퍼런스를 유지하지 않고 오로지 값만을 복사하게 됩니다...
-
[Pandas] DataFrame concat 알아보기Python 2024. 3. 9. 22:44
- 목차 키워드.concataxisignore_index 들어가며.Pandas 에서 여러개의 DataFrame 을 하나의 DataFrame 으로 병합하는 방법인 concat 함수이 대해서 알아보도록 하겠습니다.Pandas 의 다른 병합 기능인 merge 함수는 두개의 DataFrame 을 병합하는 Join Operation 을 수행합니다.반면, concat 함수는 두개 이상의 DataFrame 들을 하나의 거대한 DataFrame 으로 병합합니다.이는 Horizontal 또는 Vertical 한 두 방향으로 병합이 가능하며, Column 을 추가하거나 Row 를 추가하는 모든 병합을 제공합니다. 기본적인 동작.기본적인 동작은 아래와 같습니다.아래와 같이 두개의 DataFrame 을 생성하고, pd.con..
-
[Numpy] Boolean Indexing 알아보기 ( Boolean Mask )Python 2024. 3. 9. 21:36
- 목차 키워드.Boolean Indexing.Element-wise Calculation. 들어가며.Numpy 의 ndarray 는 Boolean Indexing 이라는 기능이 제공됩니다.만약 a = np.array([1,2,3,4,5]) 라는 ndarray 객체가 존재한다고 가정하겠습니다.a 는 1, 2, 3, 4, 5 인 5개의 데이터를 가지는 1차원 배열인데요.아래와 같이 bool_index 를 생성한 이후에 a[bool_index] 와 같은 형식으로 사용하게 되면,True 와 같은 Index 의 ndarray 의 값이 추출됩니다.a = np.array([1,2,3,4,5])bool_index = [True, True, False, False, False]print(f"a : {a[bool_ind..
-
[Python] threading Condition 알아보기 ( wait, notify )Python 2024. 3. 9. 21:36
- 목차 들어가며.파이썬은 멀티쓰레딩을 위해서 "thread" 와 "threading" 모듈을 제공합니다.흔히 "thread" 모듈은 멀티쓰레딩 프로그래밍을 위한 고수준의 API 를 담당하고,"threading" 모듈은 저수준의 기능을 제공하는 것으로 알려집니다.이번 글에서는 "threading" 모듈의 Condition 과 관련된 기능을 설명하며, 여러가지 케이스에 대해서 실습을 진행해보도록 합니다. Condition.Condition 객체는 여러 Thread 간의 동기화를 제공합니다. Synchroization 이란 ?먼저 동기화에 대해서 간단히 알아보겠습니다.동기화의 의미를 한자로 풀어보면 同期 로 작성되는데요. 이는 같음을 의미하는 "동(同)" 과 시간을 의미하는..
-
[Python] io.BytesIO truncate 알아보기Python 2024. 2. 22. 07:05
- 목차 들어가며.이번 글에서는 파이썬의 io 모듈의 BytesIO 에 대해서 알아봅니다.특히, BytesIO 로 생성된 ByteBuffer 의 truncate 기능에 대해서 자세히 알아보려고 합니다. 파이썬의 io 모듈은 StringIO 와 BytesIO 객체를 제공합니다.이들은 메모리 상에 저장된 문자 정보를 마치 파일을 다루는 듯한 API 를 제공합니다.그래서 read, seek, truncate 등의 File Read, Write API 를 사용할 수 있습니다. 하지만 이들이 저장하고 관리하는 실질적인 데이터를 동일합니다.아래의 예시처럼 이들은 "모든 소문자 알파벳들"을 저장할 뿐이며, 제공되는 API 가 다르죠.data: str = "abcdefghijklmnopqrst..