공지를 확인하였는데 궁금한 점이 있어 질문드립니다. 기출에서 컬럼을 삭제하는 경우가 없다 하셨는데 혹시 기출 8회에서도 컬럼 삭제 없이 문제를 풀 수가 있나요? 저는 아무리 해봐도 customerID 컬럼을 삭제하지 않으면 인코딩이 안 되어서요 ㅜㅜ 혹시 저는 원핫인코딩 하나로 밀고 나가고 있는데 공지는 레이블인코딩으로 진행하는 상황 기준인 걸까요..? 감사합니다.
9회부터 작업형1이 갑자기 어려워진 것 같습니다. 기존에 알고 있던 걸로 풀리지 않아, 알고리즘 문제 풀듯이 2중포문을 사용해서 문제를 풀었습니다. 코랩에서는 바로 결과가 나오나, 구름에서 코드를 돌려보니 1분안에 결과가 안나오던데, 실제 시험장에서는 이렇게 문제를 풀어도 되는지 여쭤보고 싶습니다. 작업형1 2번 문제와 3번문제를 둘 다 이중포문으로 풀었습니다. 2번 코드 import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/crime.csv") # print(df) list(set(df['연도'])) # print(df.columns[2]) store = [] for i in range(0,len(df),2): rate = 0; name = '' for j in range(2,16): temp = df.iloc[i+1,j] / df.iloc[i,j] if temp > rate: rate = temp name = df.columns[j] store.append(name) print(store) cond_result = df['구분'] == '검거건수' df_result = df[cond_result].reset_index(drop = True) print(df_result) sum = 0 for i in range(7): sum = sum + df_result.loc[i,store[i]] print(sum) #7799 3번 코드 import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/9_1/hr.csv") print(df) # print(df.shape) # print(df.isnull().sum()) # print(df.head()) a = df['만족도'].mean() # print(a) df['만족도'] = df['만족도'].fillna(a) df_group = df.groupby(['부서', '성과등급'])['근속연수'].mean().reset_index() print(df_group) cond1 = df['근속연수'].isnull() df_null = df[cond1].drop(['사원번호', '연봉', '교육참가횟수', '만족도'], axis = 1).sort_values(['부서', '성과등급']) print(df_null) for i in range (len(df_null)): for j in range (len(df_group)): if (df_null.iloc[i,0] == df_group.iloc[j,0]) & (df_null.iloc[i,1] == df_group.iloc[j,1]): df_null.iloc[i,2] = int(df_group.iloc[j,2]) break; # df['근속연수'] print(df_null) print(df) df['근속연수'] = df['근속연수'].fillna(df_null['근속연수']) df['연봉/근속연수'] = df['연봉'] / df['근속연수'] print(df.sort_values('연봉/근속연수',ascending = False)) #1 df['연봉/만족도'] = df['연봉'] / df['만족도'] print(df.sort_values('연봉/만족도',ascending = False)) #6 print(1+6)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 유형3의 분산분석 예제 중, 이원분산분석에서 직접 코드를 쳐 분석을 진행했더니 아래와 같은 출력이 나오는데, 밑에 예시와는 값이 꽤나 다르게 나오는 부분이 있었습니다. 범주형 변수를 제대로 처리를 안 해서 그런 부분이다.라고 생각해서 C()를 통해 변수를 묶으니, 코랩에서 제대로 인식을 하지 못해 아래와 같은 에러가 발생해서 제대로 된 출력이 나오지 않는 상황입니다. 제 컴퓨터 문제일 수도 있겠지만... 이런 에러를 처리하는 해결방안이 있을까요?
안녕하세요 풀이 확인 후에, 제가 다르게 생각했던 부분들은 안되는지 한번 더 질문드립니다 Section 16. 이상치, IQR 'views' 컬럼의 1사분위수, 3사분위수 그리고 IQR을 계산하시오. 이상치 조건에 맞는 데이터를 찾으시오. (이상치는 1사분위수 – (IQR 1.5)보다 작은 값과 3사분위수 + (IQR 1.5)보다 큰 값) 이상치 데이터의 'views' 컬럼 합을 정수로 구하시오. q3 = df['views'].quantile(.75) q1 = df['views'].quantile(.25) IQR = q3 - q1 line1 = q1 - 1.5 * IQR line2 = q3 + 1.5 * IQR cond=(df['views']<line1) & (df['views']>line2) print(int(df[cond]['views'].sum())) 이렇게 하면 안되나요?ㅠ 2. Section 18. 데이터(행) 기준 평균값, 인덱싱 index '2001' 데이터(행)에서 평균보다 큰 값의 개수를 구하시오. index '2003' 데이터(행)에서 평균보다 작은 값의 개수를 구하시오. 두 개수를 더하시오. 이 문제에서 풀이랑 같이 df=df.T m1 = df[2001].mean() 이렇게 했는데, --------------------------------------------------------------------------- ValueError Traceback (most recent call last) /usr/local/lib/python3.12/dist-packages/pandas/core/indexes/ range.py in get_loc(self, key) 412 try: --> 413 return self._range.index(new_key) 414 except ValueError as err: ValueError: 2001 is not in range The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) 2 frames /usr/local/lib/python3.12/dist-packages/pandas/core/indexes/ range.py in get_loc(self, key) 413 return self._range.index(new_key) 414 except ValueError as err: --> 415 raise KeyError(key) from err 416 if isinstance(key, Hashable): 417 raise KeyError(key) KeyError: 2001 이런 오류가 뜹니다 인덱스 2001 할때 그냥 df[2001]이렇게 하는거 맞나요? Section 19. 결측치(뒤에 값으로 대체), 그룹합 결측치를 바로 뒤에 있는 값으로 대체하시오. (바로 뒤의 값도 결측치일 경우, 뒤에 있는 데이터 중 가장 가까운 값으로 대체) 'city'와 'f2' 컬럼을 기준으로 그룹합을 계산하시오. 'views' 값이 세 번째로 큰 city 이름을 구하시오. 에서 df = df.bfill() 라고 적혀있던데 풀이에서 bfill 은 이전 값, ffill이 이후 값 아닌가요? 그리고, # city와 f2기준 그룹합 계산 df = df.groupby(['city','f2']).sum(numeric_only=True).reset_index() 여기서 reset 다음에 한 이유가 무엇인가요? 감사합니다
1. Section 8. 시계열 데이터, 필터링, 데이터 개수 문제 df['subscribed']= pd.to _datetime(df['subscribed']) df['y_m']=df['subscribed']. dt.to _period("m") # print(df.head()) print( df.info ()) cond1=df['y_m']=='2024-02' cond2=df['f3']='gold' df=df[cond1&cond2] 저는 이렇게 페리어드로 코딩 했는데 오류가 납니다ㅠ /tmp/ ipython-input-3254161643.py:7 : FutureWarning: 'm' is deprecated and will be removed in a future version, please use 'M' instead. df['y_m']=df['subscribed']. dt.to _period("m") --------------------------------------------------------------------------- TypeError Traceback (most recent call last) /usr/local/lib/python3.12/dist-packages/pandas/core/ops/array_ ops.py in na_logical_op(x, y, op) 361 # (xint or xbool) and (yint or bool) --> 362 result = op(x, y) 363 except TypeError: TypeError: ufunc 'bitwise_and' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) 6 frames ops.pyx in pandas._libs.ops.scalar_binop() ValueError: Buffer dtype mismatch, expected 'Python object' but got 'bool' The above exception was the direct cause of the following exception: TypeError Traceback (most recent call last) /usr/local/lib/python3.12/dist-packages/pandas/core/ops/array_ ops.py in na_logical_op(x, y, op) 383 ) as err: 384 typ = type(y).__name__ --> 385 raise TypeError( 386 f"Cannot perform '{op.__name__}' with a dtyped [{x.dtype}] array " 387 f"and scalar of type [{typ}]" TypeError: Cannot perform 'and_' with a dtyped [bool] array and scalar of type [bool] 이렇게 오류가 납니다 2. 결측치가 삭제된 데이터를 사용하여 지역별(city) 평균을 계산하시오. 이문제에서 df=df.groupby('city').mean()이렇게 하면 오류가 나던데ㅠ df = df.groupby(['city']).mean(numeric_only=True) 이렇게 뒤에 numeric 까지 반드시 해야하나요?
안녕하세요. 강의를 너무 잘 듣고 있는 학생입니다. 현재 creatomate까지 다 완강하고 youtube 자동업로드만 들으면 강의를 다 듣게됩니다. 궁금한지점이, 현재 youtube 자동화 시트에 여러 id와 title 컨텐츠들이 있는데요. 강사님이 만들어주신 n8n은 계속해서 첫 번째, id의 컨텐츠만 영상을 생성했습니다. 이것을 다른 특정 id로 바꾸거나 youtube 자동화 시트에 적혀진 모든 id의 컨텐츠를 생성하려면 n8n의 어디 부분을 고쳐야 하나요?
from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier() model = rf.fit(X_tr, y_tr) pred_proba = model.precit_proba(X_val) from sklearn.metrics import roc_auc_score ra = roc_auc_score(y_val, pred) pred_test = model.predict_proba(test) result = pd.DateFrame({'pred':pred}) result.to_csv('result.csv', index=False) 안녕하세요 2유형 공부 중 질문드립니다. 위 코드와 같이 test를 예측할때 fit 된 변수 'model'을 그대로 가져와서 model.predict_proba(test) 해도 되나요? 영상에서는 rf 변수를 사용해서 rf.predict_proba(test)로 한걸로 보여서요. 두개가 같은건가요..? 감사합니다
3번 대응 표본 검정 자료가 정규분포를 가정한다는 문구를 보지 못하고, shapiro 검정부터 해보았는데, stats.shapiro(df['기존방법']-df['새로운방법']) ShapiroResult(statistic=np.float64(0.782923502611104), pvalue=np.float64(0.008985928943897126)) 이렇게 pvalue가 0.05보다 작아서, 귀무가설 기각-> 즉 정규분포를 만족하지 않게 나오길래 wilcoxon으로 풀었는데 다 풀고 나니 정규분포를 만족한다는 문구가 있더라구요... 혹시, 실제 문제에서도 이런 경우가 있을까요? 문제 기준으로 하면 될까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 작업형2의 섹션4에서는 결측치가 있는 칼럼들이 많았어서 저는 우선 전처리로 결측치가 있는 행을 dropna(subset = ['칼럼'], axis=0)를 이용해서 결측치를 처리하는 방향으로 제거를 하였습니다. 이렇게 train과 test 데이터 모두 결측치를 제거하여, 양쪽 전부 데이터 shape에 변화를 준 상태로 학습과 예측을 진행하였습니다. 최종적으로 test의 행의 개수와 결측치 처리를 한 직후의 test 행의 개수가 일치하는 것까지 확인하였으나, 혹시 시험에서는 결측치 처리에서 발생한 기존 데이터 shape 변화로 실격처리가 될 수 있는 경우가 존재하는지 궁금합니다. 밑에 예시 정답으로는 결측치를 전부 X로 처리하시고 진행하셔서 제가 데이터 전처리를 한 방법으로 실제 시험장에서 그대로 사용할 수 있을지 질문드립니다.