취뽀 기록

#열심히 살자 #취업 #공부

분류 전체보기 221

[코드트리] sum 계산하기 > 완전수 판별기

숫자 n이 주어졌을 때, n이 완전수인지 판단하는 프로그램을 작성해보세요. 완전수란 자기 자신을 제외한 약수의 합이 자신이 되는 수를 나타냅니다. 예를 들어 6의 경우 1 + 2 + 3 = 6 이기 때문에 완전수입니다. # 변수 선언, 입력 n = int(input()) sum_val = 0 # 1부터 n-1까지의 수 중에서 약수를 찾습니다. for i in range(1, n): if n % i == 0: sum_val += i # sum_val과 n이 같다면 P을, 다르다면 N을 출력합니다. if sum_val == n: print("P") else: print("N") # 나의 풀이 -------------------------------------------- n = int(input()) a =..

[python] 재귀함수

재귀로 집합 A의 부분집합 만들기 A, B, C 가 음식점을 갈 수도 있고, 안 갈 수도 있다. 그렇지만 모두 안가진 않는다. 이런 경우의 수는? ● A = [1, 2, 3] : ● b = i번 원소의 포함 여부를 나타냄 A : 부분 집합을 구성하는 요소들을 담고 있는 원본 배열 b : 부분 집합의 구성 요소를 표시하기 위한 플래그 배열, 원본 배열 A의 각 요소에 대한 포함 여부(0은 해당 요소를 포함하지 않음, 1은 해당 요소를 포함) def f(k, n): if n==k: # b배열을 벗어나면 for i in range(n): if b[i] == 1: print(A[i], end='') print() else: b[k]=0 f(k+1, n) b[k]=1 f(k+1, n) A = [1, 2, 3] b..

카테고리 없음 2023.06.19

[판다스] 시계열 객체 변환, 시계열 데이터 만들기, 날짜 데이터 분리, 날짜 인덱싱

시계열 데이터를 만들어보자 옵션 ----------------------------------------------------------------------- - start : 시작 날짜 - end : 종료 날짜 - periods : Timestamp 개수 - freq : 빈도(월 간격, 월 시작일 등) - tz : 시간 기준 # Timestamp 배열 = range() sd_ts = pd.date_range(start = "2022-01-01", # 시작 날짜 end = None, # 끝 날짜 periods = 12, # Timestamp 개수 freq = 'MS', # 월 간격, 월 시작일 tz = 'Asia/Seoul') print(sd_ts) sd_ts = pd.date_range(start =..

[python] 정규화(최대절대값 정규화, 최소값-최대값 정규화)

최대절대값 정규화 = 관측치 / 절대값(최대값) => -1 ~ 1 사이의 값을 가질 수 있음 df['hp_nmz1'] = df['horsepower']/abs(df['horsepower'].max()) # df['hp_nmz1'] = df['horsepower']/abs(df['horsepower']).max() df['hp_nmz1'].describe() 최소값 - 최대값 정규화 = (관측치 - 최소값) / (최대값 - 최소값) 관측치 = 최소값이라면? => 0 관측치 = 최대값이라면? => 1 => 0 ~ 1 사이의 값을 가질 수 있음 df['hp_nmz2'] = (df['horsepower'] - df['horsepower'].min())/ \ (df['horsepower'].max() - df['..

[사이킷런] 더미변수 만들기, 라벨 인코딩, 원핫 인코딩

사이킷런으로 가변수를 만들어보자. # 라벨 인코딩 [Label Encoding] 라벨 인코딩은 n개의 범주형 데이터를 0부터 n-1까지의 연속적 수치 데이터로 표현 소 → 0 / 중 → 1 / 대 → 2 주의할 점은 인코딩의 결과가 수치적인 차이를 의미하진 않는다는 것 즉, 대(2)가 중(1)의 두배라는 것은 아님! # 사이킷런으로 더미변수 만들기 from sklearn import preprocessing # 전처리 엔코더 객체 label_encoder = preprocessing.LabelEncoder() onehot_encoder = preprocessing.OneHotEncoder() # 문자열 범주를 숫자 범주로 변환 = LabelEncoder labels = label_encoder.fit_t..

[Pandas] 데이터 구간별 범주화 pd.cut, pd.get_dummies

데이터 구간별 범주화 pd.cut 함수 데이터 값들을 특정 구간에 따라서 범주화할 때 사용 범주를 나누고 라벨을 붙여서 범주형 데이터로 변환 가능 연속 데이터를 구간별로 범주화 [cut 함수] 균등한 길이의 그룹 데이터의 분산에 따라 각각의 그룹마다 데이터 수가 다르게 나뉜다. [qcut 함수] 같은 크기의 그룹 표본 변위치를 기반으로 데이터를 나누어, 적당히 같은 크기의 그룹으로 나눌 수 있다. horsepower를 3 구간으로 저출력 / 보통출력 / 고출력 으로 나눠보자. pd.cut을 이용하는데 (데이터배열, 구간, 레이블이름, 경계 포함) 중 데이터배열과 구간은 필수 입력 여기서 include_lowest는 구간의 시작값을 포함하는지에 대한 여부 # 범주형 변환 bins_name = ["저출력",..

[Pandas] 데이터 전처리(널값 확인 및 대체, 중복 데이터, 표준화)

일단 라이브러리를 불러오자 # 라이브러리 불러오기 import pandas as pd import seaborn as sns # 널값 확인 # = 비어 있는 데이터(값) = 누락 데이터 df = sns.load_dataset('titanic') df.info() # Non-Null Count # 전체 행 개수가 891개 이므로 Non-Null Count도 891개가 되어야 널값이 없는 것 # 891개보다 적으면 널값이 있으니 확인! # 빈도표 # 빈도표 = 해당 열 고유값 & NaN 미포함 df['deck'].value_counts() # 빈도표 = 해당 열 고유값 & NaN 포함 df['deck'].value_counts(dropna = False) # 널값 개수 확인 # 널값 개수 합 = 열 단위로 ..

[folium] 지도 시각화, 단계 구분도

# 라이브러리 불러오기 import folium # 서울 지도 만들기 seoul_map = folium.Map(location = [37.55, 126.98], zoom_start = 12) # 파일로 저장 seoul_map.save('./seoul_map.html') # 서울 지도 만들기 - 스타일 적용 seoul_map = folium.Map(location = [37.55, 126.98], zoom_start = 12, tiles = 'Stamen Toner') # 파일로 저장 seoul_map.save('./seoul_map.html') import pandas as pd # 데이터 불러오기 df = pd.read_excel('/content/drive/MyDrive/hana1/data/서울..

Python/[시각화] 2023.06.18

[seaborn] 시각화(산점도, 히스토그램, 히트맵, 비율 막대 그래프, 빈도 막대 그래프, 상자 그림, 바이올린 그림, 조인트 그림, 그리드 분할, pairplot)

# seaborn으로 시각화 # 그래프 객체 fig = plt.figure(figsize = (12, 5)) ax1 = fig.add_subplot(1, 2, 1) ax2 = fig.add_subplot(1, 2, 2) # 산점도 # 회귀선이 없는 산점도 sns.regplot(x = 'age', y = 'fare', # 변수 설정 data = titanic, # 데이터 설정 ax = ax1, # axe 객체 설정 = 위치 설정 fit_reg = False) # 회귀선이 있는 산점도 sns.regplot(x = 'age', y = 'fare', # 변수 설정 data = titanic, # 데이터 설정 ax = ax2, # axe 객체 설정 = 위치 설정 fit_reg = True) plt.show() s..

Python/[시각화] 2023.06.18

[matplotlib] 그래프 시각화(보조축, 2축 그래프, 히스토그램, 산점도)

# 라이브러리 불러오기 import pandas as pd import matplotlib.pyplot as plt # 데이터 불러오기 df = pd.read_excel('/content/drive/MyDrive/hana1/data/남북한발전전력량.xlsx', engine = 'openpyxl') # 북한 데이터 추출 df_north = df.iloc[5:] # 데이터 전처리 df_north = df_north.drop('전력량 (억㎾h)', axis = 1) df_north = df_north.set_index('발전 전력별') df_north = df_north.T # 전력 증감율 계산 df_north = df_north.rename(columns = {'합계':'총발전량..

Python/[시각화] 2023.06.18