목록전체 글 (22)
Seongho Jang
정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지이다. - X가 3으로 나누어 떨어지면, 3으로 나눈다. - X가 2로 나누어 떨어지면, 2로 나눈다. - 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 위의 규칙에 따라 1~10까지의 수를 계산해보면 다음과 같다. 연산 1 2 3 4 5 6 7 8 9 10 최소값 0 1 1 2 3 2 3 3 2 3 + 1 0 1 2 2 3 4 3 4 4 3 / 2 0 1 - 2 - 2 - 3 - 4 / 3 0 - 1 - - 2 - - 2 - 입력된 수가 2로 나누어 떨어지거나 3으로 나누어 떨어질 경우 2로 나누거나 3으로 나누는게 최소 횟수이다. 나누어 떨어지지 않는..

RANK() OVER([PARTITION BY COL_NAME_1] ORDER BY COL_NAME_2 [DESC]) 1) RANK() OVER (ORDER BY COL_NAME DESC) COL_NAME을 기준으로 순위를 매기는 함수 SELECT [주요모델], [Company Code2], RANK() OVER(ORDER BY [매출] DESC) AS [순위] FROM ( SELECT [중지역] ,[Company Code2] ,[주요모델] ,SUM([HHP수량]) AS [수량] ,SUM([달러매출]) AS [매출] FROM [약식판연DB].[dbo].[23년 2적] WHERE [관리미츠] = 'Smart' AND [중지역] = '구주' GROUP BY [중지역] ,[Company Code2] ,[주요모..
Groupby 후 상위 n개 행 가져오기 이 용도의 nlargest 와 nsmallest API를 제공하고 있다. 하지만, 가장 빠른 방법은 데이터프레임을 원하는 값으로 정렬한 후에 groupby 하고, head 로 가져오는 것이다. id, name, total 로 구성된 데이터프레임이 있고, 각 name의 값을 total 로 정렬해 상위 3개만 가져오고 싶다면 아래와 같이 처리하는 것이 빠르다. df.sort_values(by='total', ascending=False).groupby('name').head(3) DataFrame.groupby 문서에 의하면, sort : boolean, default True Sort group keys. Get better performance by turning..
모의고사 1회차 Question10 각 job에 따라 divorced/married 인원의 비율을 확인 했을 때 그 값이 가장 높은 값은? df2 = df.groupby(['job', 'marital']).size().reset_index() df2.columns = ['job', 'marital', 'count'] df2 = df2.pivot(index = 'job', columns = 'marital', values = 'count') df2.columns = df2.columns.values df2['rate'] = df2['divorced'] / df2['married'] df2.sort_values(by = 'rate', ascending = False) pivot을 걸면 컬럼명이 list 형식..
*sklearn에서는 fit 뒤에 종속변수/독립변수 입력해서 fitting하기 단순회귀분석 from statsmodels.formula.api import ols model = ols(formula = "종속변수 ~ 독립변수", data = df).fit() 예측값 : df_test["독립변수"].fittedvalues 잔차 : df_test["독립변수"].resid 다중회귀분석 from patsy import dmatrices from statsmodels.stats.outliers_influence import variance_inflation_factor y, X = dmatrices(formula, return_type = 'dataframe') formula = "casual ~ " + " + ..

다중 회귀분석 연속형 종속변수와 두 개 이상의 독립변수 간 선형관계 및 설명력을 확인하는 기법 독립변수가 명목형 변수인 경우 가변수 변환 후 모델 적합 다중공선성 독립변수 간 강한 상관관계가 나타나는 문제 회귀모델 생성 후 분산팽창계수(VIF)를 확인하여 관련 변수를 처리(제거 등) VIF import pandas as pd from patsy import dmatrices from statsmodels.stats.outliers_influence import variance_inflation_factor as vif VIF를 계산하는 방법은 공식처럼 되어있는 것 같은데, 1) dmatrices를 써서 원하는 변수를 matrix 형태로 구성하고, 2) columns를 나열하는 열, VIF를 계산하는 열을..

crosstab : 데이터프레임의 두 변수의 원소 조합 빈도를 확인하는 함수 value와 aggfunc에 변수와 요약함수를 지정하면 별도의 산술연산 가능 normalize = 0 : row에 대한 정규화 normalize = 1 : column 에 대한 정규화 aggfunc를 지정 시 별도의 연산이 가능하며, (여기서는 pd.Series.mean으로 평균) Clustering에 자주 활용된다. 위 연산을 Long Form으로 계산 가능하다. sort_values: 데이터 정렬 함수 정렬 기준을 2개 이상으로 할 경우, 리스트 형식으로 작성하면 된다. melt : Wide form 형태의 데이터를 Long form으로 바꾸는 함수 pivot : Long form 형태의 데이터를 Wide form으로 바꾸는..

3. 데이터 병합 bike_sub = bike.sample(n=4, random_state = 123) bike_sub = bike_sub.reset_index(drop = True) bike_sub = bike_sub.set_index("datetime") reset_index(drop = True)로 기존 index를 지우고, set_index(df["datetime"])으로 datetime을 index로 설정하기 bike_1 = df.iloc[:3, :4] bike_2 = df.iloc[5:8, :4] pd.concat([bike_1, bike_2]) concat: 데이터를 row 또는 column 방향으로 이어붙이는 함수 데이터 병합 시에 서로 다른 변수 속성 또는 인덱스에 주의 index가 다른..