직접 해보기/Python
-
[seaborn] 데이터프레임으로 빈도그래프 빈도차트 카운트차트 그리기 :: sns.countplot직접 해보기/Python 2024. 7. 11. 16:46
0️⃣ 패키지 & 데이터프레임 불러오기예시가 될 데이터셋은 Kaggle에서 가져온 Flight Price Prediction 입니다.출발시간(departure_time)별로 빈도수가 어떻게 다른지 빈도 그래프를 작성해보겠습니다.# 패키지 불러오기import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 데이터셋 불러오기df = pd.read_csv('./Clean_Dataset.csv', encoding='cp949')df = df.drop([df.columns[0]], axis=1)1️⃣ sns 빈도그래프 그리기 :: sns.countplot범주형데이터에 포함된 항목별로 빈도수를 카운트해서, ..
-
[Pandas] 데이터프레임 칼럼 나누기, 칼럼 합치기 :: split() join() apply()직접 해보기/Python 2024. 7. 3. 12:33
0️⃣ 패키지 & 데이터프레임 불러오기예시가 될 데이터셋은 Kaggle에서 가져온 Flight Price Prediction 입니다.비행사(airline), 비행편 이름(flight) 칼럼만 가져왔고, 비행편 이름 칼럼으로 칼럼 나누기 합치기 테스트를 해볼게요.import pandas as pdimport numpy as np# 데이터셋 불러오기 : 비행사, 비행편 이름만df = pd.read_csv('./Clean_Dataset.csv', usecols=['airline', 'flight'], encoding='cp949')1️⃣ 칼럼 나누기 :: .str.split()비행편 이름(flight) 중간의 '-' 를 기준으로 나눠서, 제조사(manufacturer)와 모델이름(model) 칼럼 2개..
-
[Pandas][sklearn] 정규화, 표준화 - 수치형데이터 스케일링 :: MinMaxScaler StandardScaler직접 해보기/Python 2024. 7. 2. 16:30
✅ 수치형데이터 스케일링 (Scaling)스케일링(Scaling)• 수치형 데이터가 여러개 있는데 숫자범위가 다르다면 → 범위를 비슷하게 만들어줄 필요가 있다. • 왜냐하면? 그대로 모델링하면 상대적으로 큰 숫자를 가지는 칼럼의 기여도가 더 크게 반영되어버리기 때문! • 따라서 스케일링하여 상대적인 크기 차이를 없애줘야 함 • 스케일링을 통해 데이터의 불필요한 차원을 줄이고, 분석모델의 학습속도가 향상시킬 수 있음 (효율↑)정규화(Normalization) • Min-Max Scaling : 데이터의 최솟값, 최댓값을 이용해서 데이터를 일정 범위 내의 값들로 변환 • 일반적으로 0~1 사이의 값으로 변환 ※ 데이터에 이상치가 없고, 분포가 크게 치우쳐 있지 않은 경우에 적합한 방법 (이상치 제거..
-
[Pandas][sklearn] 인코딩, 원핫인코딩 범주형데이터 수치형으로 변환하기 :: pd.factorize pd.get_dummies직접 해보기/Python 2024. 7. 1. 23:53
✅ 범주형 인코딩 (Categorical Encoding)범주형 인코딩 • 텍스트로 이루어진 범주형 데이터를 수치형 데이터로 변환하는 것. • 인코딩하는 이유: 데이터 양이 방대한 경우, 텍스트로 이루어진 범주형은 수치로 변환해줘야 데이터 처리속도가 향상됨 (다시 말해 컴퓨터가 가장 이해하기 쉬운 언어인 숫자로 바꿔주는 게 좋다)레이블/라벨 인코딩(Label Encoding) • 범주형 데이터에 숫자 레이블/라벨을 할당함 = 범주마다 번호를 매김(ex) 월요일은 1, 화요일은 2, 수요일은 3, ...원핫 인코딩(OneHot Encoding)• 범주별로 칼럼을 만들어서, 칼럼안에 1 아니면 0 만 넣는다• 한 칼럼에만 1(True) 이 들어가고, 나머지 칼럼들은 0(False) 가 들어가는 방..
-
[Pandas] 구간화(Binning) 연속형데이터를 범주형으로 변환하기 :: pd.cut pd.qcut직접 해보기/Python 2024. 7. 1. 20:48
✅ 구간화 (Binning) 구간화 (Binning) • 연속형 수치데이터를 특정 구간으로 나눠서, 범주형 데이터로 변환하는 것. • 구간화하는 이유: 이상치로 발생 가능한 문제를 줄임, 분석 결과 해석이 쉬워질 수 있음.pd.cut() • 구간값을 직접 입력해서 지정함.pd.qcut() • 구간 개수를 입력함. 따라서 각 구간에 동일한 개수의 데이터가 들어가게 됨.0️⃣ 패키지 & 데이터프레임 불러오기예시가 될 데이터셋은 Kaggle에서 가져온 Flight Price Prediction 입니다.# 패키지 불러오기import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 데이터셋 불러오기df = ..
-
[Pandas] 이상치 확인, 이상치 처리하기 :: Z-score 방법, IQR 방법직접 해보기/Python 2024. 7. 1. 15:41
✅ 이상치 (Outlier) 이상치 (Outlier) • 관측된 데이터의 일반적인 범위에서 많이 벗어난 값, 즉 너무 작은 값이나 너무 큰 값 • 기준을 정해서 이상치를 처리하는 것은 필수! 이상치가 모델링 및 의사결정에 영향을 미칠 수 있기 때문.Z-score 방법 • 평균값 기반으로 이상치를 탐지하는 방법• 평균, 표준편차를 이용해서 특정 데이터가 평균값으로부터 얼마나 멀리 떨어져있는지 계산 → 특정 임계값을 넘어가면 이상치로 판단 IQR 방법 • 중앙값 기반으로 이상치를 탐지하는 방법• 사분위수, IQR을 이용해서 특정 데이터가 중앙값으로부터 얼마나 멀리 떨어져있는지 계산 → 박스플롯의 최솟값, 최댓값을 넘어가면 이상치로 판단 0️⃣ 패키지 & 데이터프레임 불러오기예시가 될 데이터..
-
[Pandas] 데이터프레임 결측치 확인, 결측치 처리 삭제 대체 :: isnull, dropna, fillna, ffill, bfill직접 해보기/Python 2024. 6. 30. 21:17
Pandas 데이터프레임에서 결측치 확인하고 처리해보기!1️⃣ 결측치 여부, 결측치 개수 확인하기 :: isnull()isnull() : 데이터프레임의 값들이 결측치인지 아닌지, 여부를 확인할 수 있습니다. 아래처럼 True/False로 결과가 출력됩니다.isnull().sum() : 칼럼별로 결측치 개수를 출력합니다.# 결측치 여부를 확인df_na.isnull()# 칼럼별로 결측치 개수 출력하기df_na.isnull().sum()2️⃣-1. 결측치 삭제 — 결측치 있는 행(row) 삭제하기 :: dropna()결측치가 1개라도 포함된 행이라면, 해당 행을 삭제해버리는 방법입니다. 결측치 비중이 적은 경우에 적합한 방법이에요.결측치가 많은데 삭제해버린다면, 데이터 손실이 커지고 분석모델에 원래..
-
[seaborn] 산점도에 회귀선 회귀식 추가하기 :: sns.lmplot sns.regplot직접 해보기/Python 2024. 6. 29. 17:12
0️⃣ 패키지 & 데이터프레임 불러오기예시가 될 데이터셋은 Kaggle에서 가져온 Flight Price Prediction 입니다.좌석(class) 이코노미석인 데이터셋만 걸러서, 비행까지 남은일수(days_left)와 가격(price)간의 관계를 알아보니상관계수 약 -0.56로 상당한 음의 상관관계를 보여주고 있네요.산점도와 회귀선까지 시각화해서 두 칼럼간의 관계를 좀더 분석해보겠습니다.# 패키지 불러오기import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# 데이터셋 불러오기df = pd.read_csv('./Clean_Dataset.csv', encoding='cp949')# 좌석(class..