Python/Pandas 16

[Pandas] 인코딩 ( Encoding )

인코딩 ( Encoding ) 이란?범주형 데이터를 수치형 데이터로 변환하는 과정 많은 머신러닝 모델은 수치형 데이터만 처리할 수 있기에, 범주형 데이터를 인코딩하는 것이 필수적1. 라벨 인코딩 ( Label Encoding )각 범주를 고유한 숫자로 변환하는 방식 ex) '빨강', '파랑', '초록' 이 있을경우 각각 0, 1, 2 로 변환주의할점 : 수치간에 순서가 있는 것으로 해석될 수 있다예를 들어, "빨강" = 0, "파랑" = 1, "초록" = 2로 변환되면 "파랑"이 "빨강"보다 크다는 의미로 잘못 해석될 수 있습니다.from sklearn.preprocessing import LabelEncoder# 데이터categories = ["빨강", "파랑", "초록", "파랑", "빨강"]# 라벨..

Python/Pandas 2024.12.26

[Pandas] 데이터 정규화 와 표준화

데이터 정규화데이터의 범위를 0 과 1 사이로 변환하는 과정서로 다른 범위를 가진 데이터를 동일한 스케일로 맞추어 비교하기 쉽게 만듬 Min - Max 정규화import pandas as pdfrom sklearn.preprocessing import MinMaxScaler# 예시 데이터프레임 생성data = { '특성1': [10, 20, 30, 40, 50], '특성2': [1, 2, 3, 4, 5]}df = pd.DataFrame(data)# Min-Max 정규화scaler = MinMaxScaler()normalized_df = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)print(normalized_df) 특성1 특성2..

Python/Pandas 2024.12.26

[Pandas] 이상치 탐지와 처리

이상치 탐지 기술 통계 기반 이상치 탐지 -  describe()  describe()  함수를 통해 기본 통계량을 확인하고, 이상치를 의심import pandas as pd# 예시 데이터프레임 생성data = { '이름': ['철수', '영희', '민수', '지수', '상수'], '나이': [25, 30, 22, 35, 120], # 120은 이상치로 의심됨 '점수': [90, 85, 95, 80, 88]}df = pd.DataFrame(data)# 기술 통계량 확인print(df['나이'].describe()) - 결과count 5.000000mean 46.400000std 41.892848min 22.00000025% 25.0000..

Python/Pandas 2024.12.26

[Pandas] 결측치 탐지와 처리

결측치 탐지 Pandas 에서 결측치를 탐지하는 기본적인 함수는  isnull()  과  notnull()  이다. isnull()  : 결측치가 있는지 확인. 결측치인 경우 True , 아닌경우 False 를 반환 notnull()  : 결측치가 아닌 값을 확인. 결측치가 아닌 경우 True , 맞는경우 False  를 반환 null  과  na  를 변경해  isna()  ,  notna()  로 표현도 가능- 예시import pandas as pd# 예시 데이터프레임 생성data = { '이름': ['철수', '영희', '민수', '지수'], '나이': [25, 30, None, 35], '직업': ['학생', '회사원', '학생', None]}df = pd.DataFrame(dat..

Python/Pandas 2024.12.26

[Pandas] 피벗 테이블 - pivot_table()

Pivot Table (피벗 테이블)데이터를 요약하거나 재구조화 할때 유용하게 사용엑셀의 피벗테이블 과 유사데이터프레임을 특정 열을 기준으로 요약하고 집계 가능기본 구조 pivot_table()  함수를 사용아래와 같은 매개변수 제공pd.pivot_table( data, # 데이터프레임 values=None, # 집계할 값 index=None, # 행 기준으로 사용할 열 columns=None, # 열 기준으로 사용할 열 aggfunc='mean',# 집계 함수 (기본값: 평균) fill_value=None, # NaN 대체값 margins=False # 행과 열의 합계 표시 여부)예시 데이터import pandas as pddata = ..

Python/Pandas 2024.12.16

[Pandas] 그룹화 및 집계함수

GroupBy (그룹화)기준 열을 바탕으로 데이터를 그룹화 groupby() import pandas as pd# 예시 데이터프레임df = pd.DataFrame({ 'A': ['X', 'Y', 'X', 'Y', 'X', 'Y'], 'B': [10, 20, 30, 40, 50, 60], 'C': [5, 10, 15, 20, 25, 30]})# 'A' 열을 기준으로 그룹화grouped = df.groupby('A')# 그룹화된 객체 출력print(grouped)# 출력 groupby()  는 그룹화된 객체를 반환하며, 그룹별 연산을 하려면 추가적인 집계 함수가 필요함그룹화 후 집계 (Aggregation)그룹화 후 집계함수를 사용해 각 그룹에 대해 연산을 수행한다집계함수sum() - 합계m..

Python/Pandas 2024.12.16

[Pandas] 데이터 병합 - merge(), concat(), join()

merge()  함수SQL 의 JOIN 처럼 데이터를 '기준 열' 을 기준으로 병합inner joinouter joinleft joinright joinimport pandas as pd# 예시 데이터프레임df1 = pd.DataFrame({ 'A': [1, 2, 3], 'B': ['A1', 'B2', 'C3']})df2 = pd.DataFrame({ 'A': [1, 2, 4], 'C': ['X1', 'Y2', 'Z3']})# 'A' 열을 기준으로 병합merged_df = pd.merge(df1, df2, on='A')print(merged_df)# 출력 A B C0 1 A1 X11 2 B2 Y2  merge()  의 기본값은 inner join  병합 유형 내..

Python/Pandas 2024.12.16

[Pandas] 데이터 정렬 - sort_values(), sort_index(), rank()

sort_values()  를 사용한 데이터 정렬값을 기준으로 정렬할 때 사용import pandas as pd# 예시 데이터프레임df = pd.DataFrame({ 'A': [3, 1, 4, 2], 'B': [30, 10, 40, 20]})# 'A' 열을 기준으로 오름차순 정렬sorted_df = df.sort_values(by='A', ascending=True)print(sorted_df)# 출력 A B1 1 103 2 200 3 302 4 40 ascending=True  는 생략가능하며 기본값이 True 내림차순은  False  sort_index()  를 사용한 인덱스 정렬인덱스 기준으로 데이터프레임을 정렬할 때 사용# 인덱스를 기준으로 오름차순 정렬df_sor..

Python/Pandas 2024.12.16

[Pandas] 타입 변환 - astype()

astype()  을 이용한 타입 변환특정 열의 데이터를 다른 데이터 타입으로 변환import pandas as pddf = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40]})# 'A' 열의 데이터 타입을 float으로 변환df['A'] = df['A'].astype(float)print(df.dtypes)# 출력A float64B int64dtype: object pd.to_numeric()  을 사용한 타입 변환문자열을 숫자로 변환오류가 발생하는 경우  errors='coerce'  옵션을 사용해 결측치로 변환df['A'] = pd.to_numeric(df['A'], errors='coerce')print(df) pd.to_d..

Python/Pandas 2024.12.16

[Pandas] 필터링

조건을 사용한 필터링조건을 걸어 특정 열의 값이 일정 조건을 만족하는 행을 선택할 수 있음import pandas as pddf = pd.DataFrame({ 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40]})# 'A' 열 값이 2보다 큰 행 선택filtered_df = df[df['A'] > 2]print(filtered_df)# 출력 A B2 3 303 4 40여러 조건을 결합하여 필터링 & (AND)또는 | (OR) 연산자를 사용하여 여러 조건을 결합 가능# 'A' 열 값이 2보다 크고, 'B' 열 값이 30보다 작은 행 선택filtered_df = df[(df['A'] > 2) & (df['B'] # 출력 A B2 3 30 ~  연산자 ..

Python/Pandas 2024.12.16