본문 바로가기

[업무 지식]/Python24

[모든 값 출력] Pandas DataFrame에서 모든 열의 값을 표시하려면 `pd.set_option()`을 사용하여 출력 설정을 조정할 수 있습니다. 이는 DataFrame의 열이 많아 기본적으로 생략되는 경우에 유용합니다. 다음은 모든 열을 표시하기 위한 방법입니다.모든 열 표시 설정1. 모든 열을 표시:   - `display.max_columns` 옵션을 사용하여 출력 시 모든 열이 보이도록 설정할 수 있습니다.import pandas as pd# 모든 열을 출력하도록 설정pd.set_option('display.max_columns', None)# 예제 DataFrame 출력print(df.head())2. 모든 행을 표시:   - `display.max_rows` 옵션을 사용하여 모든 행이 보이도록 설정할 .. 2024. 12. 1.
[Unstack] 데이터 재구조화 Unstack() 함수DataFrame이나 Series의 MultiIndex 레벨을 피벗하여 행 인덱스의 하나 이상의 레벨을 열 레이블로 변환기능레벨 피벗: unstack()의 주요 기능은 인덱스의 지정된 레벨을 열로 피벗하는 것입니다. 기본적으로 가장 안쪽 레벨(-1)을 피벗하지만, level 매개변수를 사용하여 원하는 레벨을 지정할 수 있습니다.결측값 처리: 언스택 과정에서 모든 인덱스 레벨 조합이 존재하지 않을 경우 결측값(NaN)이 발생할 수 있습니다. fill_value 매개변수를 사용하여 이러한 NaN 값을 특정 값으로 대체할 수 있습니다.정렬: sort 매개변수는 기본값이 True로, 결과 MultiIndex 열에서 레벨을 정렬할지 여부를 결정합니다.문법DataFrame.unstack(le.. 2024. 11. 28.
[시계열분석] polyfit, propher 참고 도서https://m.yes24.com/Goods/Detail/57670268 파이썬으로 데이터 주무르기 - 예스24독특한 예제를 통해 배우는 데이터 분석 입문이 책은 누구나 한 권 이상 가지고 있을 파이썬 기초 문법책과 같은 내용이 아닌, 데이터 분석이라는 특별한 분야에서 초보를 위해 처음부터 끝까지m.yes24.com 라이브러리 호출import pandas as pdimport pandas_datareader.data as webimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')from prophet import Prophet from .. 2024. 11. 26.
[범주형 인코딩] LabelEncoder, OnehotEncording 함수 정리def get_category(df): from sklearn.preprocessing import LabelEncoder, OneHotEncoder col = ['BLDG_NM'] le = LabelEncoder() oe = OneHotEncoder() for column in col: le.fit(df[column]) new_column = f'{column}_le' df[new_column] = le.transform(df[column]) # index reset df = df.reset_index() for column1 in col: # 원핫인코딩은 array 행렬로 만.. 2024. 11. 23.
[Scaler] StandardScaler, MinMaxScaler 정규화# 정규화def get_numeric_sc(df): from sklearn.preprocessing import StandardScaler, MinMaxScaler col_sdsc = ['column1', 'column2', 'column3'] col_mmsc = ['column1'] sd_sc = StandardScaler() mm_sc = MinMaxScaler() for column in col_sdsc: sd_sc.fit(df[[column]]) new_column = f'{column}_sdsc' df[[new_column]] = sd_sc.transform(df[[column]]) f.. 2024. 11. 22.
[2차원 배열 저장] for문 파이썬 300제 중 194번 문제https://wikidocs.net/78565 191 ~ 200.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray;bo…wikidocs.net 문제data = [ [ 2000, 3050, 2050, 1980], [ 7500, 2050, 2050, 1980], [15450, 15050, 15550, 14900]]191번 문제의 결괏값을 result 이름의 리스트에 2차원 배열로 저장하라. 저장 포맷은 아래와 같다. 각 행에 대한 데이터끼리 리스트에 저장되어야 한다.>> print(result)[ [2000.28, 3050.427.. 2024. 11. 21.
[이상치 처리] Python 이상치 확인 boxplot # boxplot 시각화 대상 컬럼 리스트col = ['ARCH_YR_mean', 'STDG_CD', 'CGG_CD', 'ARCH_AREA', 'CTRT_DAY']# 각 컬럼에 대해 Boxplot 생성for column in col: plt.figure(figsize=(8, 4)) # 개별 플롯 크기 설정 sns.boxplot(data=df_anal, x=column) plt.title(f'Boxplot of {column}') # 제목 추가 plt.show() # 그래프 출력 이상치 탐지: Z-score 함수로 한번에 적용# 이상치 처리 z-scoredef get_outlier_zscore(df): col = ['ARCH_YR_mean'] .. 2024. 11. 7.
[결측값 처리] python 기초 결측값 비율 확인 및 시각화 함수 import pandas as pdimport matplotlib.pyplot as pltdef missing_per(df): null_data = [] # 빈 리스트로 시작하여 각 컬럼의 결측값 정보를 저장합니다. for col in df.columns: null_rate = df[col].isna().sum() / len(df) * 100 if null_rate > 0: print('{} null rate: {}%'.format(col, round(null_rate, 2))) # null_data에 딕셔너리 형태로 추가 null_data.append({'column': c.. 2024. 11. 7.
[seaborn] 데이터 시각화 ≣ 목차바 그래프 1 # seaborn 라이브러리를 통한 그래프 그리기 p = ["#F4D13B","red"]sns.set_palette(p)plot1 = (sns.barplot(data=df33,x= "Gender",y= "Customer ID"))# containers: 각 막대 / labels: 각 막대의 높이를 텍스트로 반환 plot1.bar_label(plot1.containers[0], labels=df33['Customer ID'], fontsize=7, color='blue')plot1.set_title("User - bar chart")  바 그래프 2 # seaborn 라이브러리를 통한 그래프 그리기 plt.figure(figsize=(15, 8))dplot1 = sns.barplot(.. 2024. 10. 31.
[matplotlib] 데이터시각화 ≣ 목차라이브러리 import import pandas as pd import numpy as npimport timefrom PIL import Imageimport altair as altimport seaborn as snsimport matplotlib.pyplot as plt import datapane as dp 파이썬 내장함수 plot # python 내장함수 plot 사용하기# 성별 유저수 막대그래프# 막대그래프df2.groupby('Gender')['Customer ID'].count().plot.bar(color=['yellow','black']) 라인그래프 # 카테고리별 유저수 구하기 # 인덱스 가리기: .style.hide_index() : 사용하면 그래프를 그릴 수 없습니다. 참고.. 2024. 10. 31.
[10분 판다스] python 기초 DataFrame 만들기 import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdates = pd.date_range('20241001', periods = 6)df = pd.DataFrame(np.random.randn(6, 4), index = dates, columns = list('ABCD'))df 새 열을 설정하면 데이터가 인덱스 별로 자동 정렬 s1 = pd.Series([1, 2, 3, 4, 5, 6], index = pd.date_range('20241001', periods = 6))s1df['F'] = s1df NUMPY 배열을 사용한 할당값 변경 df.loc[:, 'D'] = np.array([4] * len(df)).. 2024. 10. 31.
[pandas 라이브러리] transform Python transform 함수Pandas 라이브러리에서 데이터 프레임의 각 열에 함수를 적용하여 변환된 결과를 반환하는 데 사용특히 데이터의 크기를 유지하면서 변환할 때 유용이 함수는 여러 열에 여러 함수를 동시에 적용해야 할 때 매우 유용기본 사용법형태: DataFrame.transform(func, axis=0, *args, **kwargs)func: 적용할 함수axis: 0은 행(row), 1은 열(column)args, kwargs: 함수의 추가 인수주요 특징동일한 크기의 결과 반환: 입력 데이터와 동일한 크기의 결과를 반환해야 한다. 예를 들어, 평균(mean)과 같은 집계 함수는 사용할 수 없다다중 함수 적용: 여러 함수를 동시에 적용할 수 있다. 예를 들어, ['diff', 'pct_c.. 2024. 10. 30.
[pandas 라이브러리] DATEUTIL datetime & dateutil파이썬 라이브러리 중 시간을 쉽게 다루게 하는 datetiem, dateutildatetime파이썬 표준 라이브러리: 날짜와 시간을 처리하는 다양한 클래스와 함수 제공기능: 날짜 연산부터 현지 시간과 타임존을 다룰 수 있다.from datetime import datetime# 현재 날짜와 시간now = datetime.now()print(now) # 예: 2024-10-30 15:45:00dateutil서드 파티 라이브러리: datetime의 확장 기능을 제공기능: 복잡한 날짜 규칙 및 타임존을 쉽게 다룰 수 있도록 지원. 다양한 날짜 형식을 자동으로 감지하고 처리할 수 있다.설치pip install python-dateutil   문자열 -> 데이트타입 변환strp.. 2024. 10. 30.
[Python Basic] 이상치 파헤치기 이상치 탐지: Z-SCOREfrom sklearn.preprocessing import StandardScaler# 표준화 진행# 표준화 : 평균을 0으로, 표준 편차를 1로 # 데이터를 0을 중심으로 양쪽으로 데이터를 분포시키는 방법# 표준화를 하게 되면 각 데이터들은 평균을 기준으로 얼마나 떨여져 있는지를 나타내는 값으로 변환scale_df = StandardScaler().fit_transform(df1) # array 형태로 반환된 것을 dataframe 으로 받아줍니다.scale_df = pd.DataFrame(scale_df)# 기존 raw 값과 표준화 이후 데이터를 비교하기 위해 merge 진행merge_df = pd.concat([df1, scale_df],axis=1) 이상치 감지# 이.. 2024. 10. 30.
[Python basic] 결측치 파헤치기 결측치 제거 - 열 제거하기# 결측치 제거1 - 열 제거하기 df3 = df3.drop('Unnamed: 4', axis=1)# 결측치 제거2 -결측치가 있는 행들은 모두 제거 # 원본 데이터 변경 - dropna(inplace = True)# 원본 데이터 유지 - dropna()df3.dropna(inplace=True)df3.dropna() 결측치 대체: 최빈값# 결측치는 카운트 되지 않는다.# interaction type의 빈칸을 채우고 싶다df3.groupby('Interaction type').count()df3.groupby('Interaction type')['product id'].count().reset_index()# 결측치가 있는 Interaction type 컬럼을 최빈값으로 대체.. 2024. 10. 30.
[Python 기초] ② 딕셔너리 항목 추가ice = {"메로나": 1000, "폴라포": 1200, "빵빠레": 1800}ice["죠스바"] = 1200ice["월드콘"] = 1500print(ice) 딕셔너리 인덱싱inventory = {"메로나": [300, 20], "비비빅": [400, 3], "죠스바": [250, 100]}# inventory 딕셔너리에서 메로나의 가격을 화면에 출력하라.# print(inventory["메로나"][0], "원") 딕셔너리 keys() 메서드# 다음의 딕셔너리로부터 key 값으로만 구성된 리스트를 생성하라.icecream = {'탱크보이': 1200, '폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 100.. 2024. 10. 24.
[Python 기초] ① print 탭과 줄바꿈print("안녕하세요.\n만나서\t\t반갑습니다.")# `\t`는 탭을 의미하고 `\n'`은 줄바꿈을 의미합니다. SEP 인자print("naver", "kakao", "sk", "samsung", sep = ";")# print 함수의 sep 인자로 ";"를 입력하면 출력되는 값들 사이에 한 칸의 공백대신 세미콜론이 출력됩니다.# ;, / 가능 print 줄바꿈 xprint("first", end = "/")print("second") %formattingname1 = "김민수" age1 = 10name2 = "이철희"age2 = 13print("이름: %s 나이: %d" % (name1, age1))print("이름: %s 나이: %d" % (name2, age2)) forma.. 2024. 10. 24.
Python / 데이터 시각화 Matplotlibimport matplotlib.pyplot as plt# 데이터 생성x = [1, 2, 3, 4, 5]y = [2, 4, 6, 8, 10]# 선 그래프 그리기plt.plot(x, y)plt.xlabel('X-axis')plt.ylabel('Y-axis')plt.title('Example Plot')plt.show()Seaborniris 데이터셋: 붓꽃의 꽃잎과 꽃받침의 길이와 너비를 포함한 데이터셋입니다. tips 데이터셋: 음식점에서의 팁과 관련된 정보를 담고 있는 데이터셋입니다. titanic 데이터셋: 타이타닉 호 승객들의 정보를 포함한 데이터셋입니다. flights 데이터셋: 연도별 항공편 정보를 담고 있는 데이터셋입니다. planets 데이터셋: 외계 행성 발견에 대한 정보를.. 2024. 10. 23.
Python / 데이터 집계 Group byGroup by 함수는 데이터프레임을 그룹화하고, 그룹 단위로 데이터를 분할(split), 적용(apply), 결합(combine)하는 기능import pandas as pd# 샘플 데이터프레임 생성data = { 'Category': ['A', 'B', 'A', 'B', 'A', 'B'], 'Value': [1, 2, 3, 4, 5, 6]}df = pd.DataFrame(data)# 'Category' 열을 기준으로 그룹화하여 'Value'의 연산 수행grouped = df.groupby('Category').mean()grouped_sum = df.groupby('Category').sum()grouped_count = df.groupby('Category').count()g.. 2024. 10. 23.
python / boolean indexing # 단일 조건으로 필터링# 'age' 열에서 30세 이상인 행 필터링df[df['age'] >= 30] # 여러 조건으로 필터링# 'age' 열에서 30세 이상이면서 'gender' 열이 'Male'인 행 필터링df[(df['age'] >= 30) & (df['gender'] == 'Male')] # 조건에 따른 특정 컬럼 필터링# 'age' 열에서 30세 이상인 경우의 'name' 열만 선택df.loc[df['age'] >= 30, 'name'] # isin()을 활용한 필터링# 'gender' 열에서 'Male' 또는 'Female'인 행 필터링df[df['gender'].isin(['Male', 'Female'])] # isin() 활용1. 단일 값 포함 여부 확인# 'B' 열에서 'banana' .. 2024. 10. 23.