AI/Pandas 10

[Pandas] 연속형 데이터를 범주형 데이터로 변환하는 방법

pandas 라이브러리를 활용하여 데이터를 처리할 때, 연속형 데이터를 범주형 데이터로 변환해야 하는 경우가 있다. 이런 경우, 어떤 방법으로 연속형 데이터를 범주형 데이터로 변환할 수 있는지 알아보자. cut 함수 연속형 데이터를 잘라 범주형 데이터로 변환할 수 있다. pd.cut(column 이름, bins=[자르려고 하는 값의 경계], labels=[각 범위에서 갖는 값] boundary = list(range(0, int(df["age"].max()) + 10, 10)) print(boundary) # 출력: [0, 10, 20, 30, 40, 50, 60, 70, 80] pd.cut(df.age, bins = boundary) # 나이대를 값으로 갖는 범주형 데이터가 생성된다.

AI/Pandas 2023.03.09

[Pandas] DataFrame을 합치는 방법

DataFrame을 합치는 방법에 대해 알아보자. merge 함수 SQL의 join과 같은 역할을 한다. pd.merge(데이터프레임1, 데이터프레임2, how = merge 방식, on=기준 column) how : merge 방식(inner, outer, left, right) 중 하나를 지정한다. 기본값은 inner on : merge를 수행할 기준 column을 지정한다. fruit = pd.DataFrame({'Code':[123, 456, 789, 1011, 1112], 'Fruit':['Apple', 'Banana', 'Cherry', 'Lemon', 'Peach']}) grade = pd.DataFrame({'Code':[123, 789, 1314], 'Grade':['A', 'B', 'C..

AI/Pandas 2023.03.09

[Pandas] groupby

DataFrame에서 특정 column의 값을 기준으로 그룹을 짓는 방법에 대해 알아보자. groupby SQL의 GROUP BY와 같은 역할을 한다. 그룹을 짓는 기준이 되는 column을 지정해서 데이터를 그룹별로 나눈다. 데이터프레임.groupby(기준 column).연산() df = pd.DataFrame({ 'city': ['부산', '부산', '부산', '부산', '서울', '서울', '서울'], 'fruits': ['apple', 'orange', 'banana', 'banana', 'apple', 'apple', 'banana'], 'price': [100, 200, 250, 300, 150, 200, 400], 'quantity': [1, 2, 3, 4, 5, 6, 7] }) print(..

AI/Pandas 2023.03.09

[Pandas] column 별로 데이터의 비율 알아내는 방법

DataFrame의 column 별로 데이터가 어떤 비율로 존재하는지 확인하는 방법에 대해 알아보자. column 별 값의 비율 알아내는 방법 데이터프레임[column 이름].value_counts() / len(데이터프레임[column 이름]) print(df["gender"].value_counts() / len(df["gender"])) # 출력: # male 0.644003 # female 0.355997 # Name: gender, dtype: float64 len 함수는 전체 데이터의 개수를 반환한다. 따라서 위 코드는 "gender" column에서 결측값을 포함한 데이터 비율을 살펴볼 수 있는 코드이다. 결측값을 제외한 데이터의 비율을 살펴보기 위해서는 len 함수 대신, count 함수를..

AI/Pandas 2023.03.09

[Pandas] apply 함수와 applymap 함수

DataFrame의 값에 함수를 적용할 때 사용하는 apply 함수와 applymap 함수에 대해 알아보자. apply 함수 DataFrame에 걸쳐 Series 단위에 (또는 row 단위에) 함수를 적용하고 싶을 때 사용한다. 데이터프레임.apply(함수, axis = 기준 축) raw_data = {"A":[-1,4,13], "B":[2,5,6], "C":[0,6,11]} df = pd.DataFrame(raw_data, index = ['first', 'second', 'third']) print(df) # 출력: # A B C # first -1 2 0 # second 4 5 6 # third 13 6 11 f = lambda x : x.max() - x.min() print(df.apply(f)..

AI/Pandas 2023.03.09

[Pandas] map 함수 VS replace 함수

종종 모델 학습을 위해 문자열 데이터를 정수형 데이터로 변환해야 하는 경우가 있다. 이런 경우, 어떤 방법으로 변환할 수 있는지 알아보자. map 함수 raw_data = { "product_code" : ["A", "A", "C", "B", "E", "C"], "size" : [5.3, 4.2, 7.4, 4.1, 3.7, 1.5]} df = pd.DataFrame(raw_data) print(df) # 출력: # product_code size # 0 A 5.3 # 1 A 4.2 # 2 C 7.4 # 3 B 4.1 # 4 E 3.7 # 5 C 1.5 print(df.product_code.map({"A" : 1, "B": 2, "C": 3, "D": 4, "E": 5})) # 출력: # product_..

AI/Pandas 2023.03.09

[Pandas] DataFrame과 Series 간의 연산

numpy array는 matrix와 vector간의 broadcasting 연산을 지원한다. numpy 배열 간 연산 - broadcasting 그렇다면, numpy를 기반으로 하는 pandas에서는 DataFrame과 Series 간의 연산을 어떻게 수행할 수 있을까? df = pd.DataFrame(np.arange(16).reshape(4,4), columns = list("abcd")) print(df) # 출력: # a b c d # 0 0 1 2 3 # 1 4 5 6 7 # 2 8 9 10 11 # 3 12 13 14 15 s = pd.Series(np.arange(10, 14)) print(s) # 출력: # 0 10 # 1 11 # 2 12 # 3 13 # dtype: int64 prin..

AI/Pandas 2023.03.09

[Pandas] DataFrame

파이썬의 데이터 처리 라이브러리인 pandas에서 사용하는 자료구조 중 하나인 DataFrame에 대해 알아보자. DataFrame Table 구조의 데이터를 저장하는 객체이다. Series가 모여 DataFrame을 구성한다. DataFrame을 구성하는 값(element)들은 numpy의 ndarray로 이루어져 있다. raw_data = {"A":[1,4,7], "B":[2,5,8], "C":[3,6,9]} # dict의 key 값이 dataframe의 column으로 변환된다. df = pd.DataFrame(raw_data, index = ['first', 'second', 'third']) print(df) # 출력: # A B C # first 1 2 3 # second 4 5 6 # thi..

AI/Pandas 2023.03.09

[Pandas] Series

Pandas는 numpy를 기반으로 하는 파이썬의 데이터 처리 라이브러리이다. 주로 구조화된 데이터를 처리하거나 통계 분석에 사용한다. pandas에서는 Series와 DataFrame이라고 하는 두가지 자료구조를 사용한다. 그 중, Series에 대해 알아보자. Series column vector를 표현하는 데이터 객체이다. numpy의 ndarray의 서브 클래스(자식 클래스)이다. 인덱스와 값으로 이루어져 있다. import pandas as pd list_data = [1,2,3,4,5] series_ex = pd.Series(data = list_data) print(series_ex) # 출력: # 0 1 좌측에 인덱스, 우측에 값이 출력된다. # 1 2 # 2 3 # 3 4 # 4 5 # ..

AI/Pandas 2023.03.09