빅데이터 분석기사 66

replace, 누적합 cumsum, 파라미터 method = 'bfill', standardization

T1-7 df[df['f4']=='ESFJ'] 엑세서 str 은 데이터 프레임에 안됨 df['f4'].replace('ESFJ','ISFJ') unsupported operand type(s) for &: 'str' and 'str' 오류시 =로 했는지 체크 -> 데이터 처음부터 다시 런타임하기 con1 = df['city']=='경기' con2 = df['f4']=='ISFJ' result = df[con1&con2]['age'].max() print(int(result)) T1-8 df2 = df[df['f2']==1]['f1'].cumsum() fillna(method='bfill') : back 값 채우기 pad : 앞 forward 같으로 채우기 -> 파라미터 암기 힘드니까 help(df.fil..

빅데이터분석기사 2유형 주의할 점, 실수하기 좋은 점, 많이 뜨는 오류

1. concat concat 시 X, X_submission으로 해야함 -> X,Y 아님 concat() got multiple values for argument 'axis' 인덱싱 관련 오류 -> X, X_submission은 꼭 인덱싱 해야함 dfX = pd.concat([X, X_submission],axis=0,ignore_index=True) 2. Y 분포 확인해보기 Y.value_counts('Segmentation',normalize=True).sort_values(ascending=False) 3. 라벨인코딩 라벨인코딩 사용시 astype('category').cat.codes 사용 !! feature = ['Gender','Ever_Married','Graduated','Profess..

빅데이터분석기사 기출 3회 유형 1 문제풀이

캘리포니어 집값 데이터 결측치를 포함하는 모든 행 제거 후 처음부터 순서대로 70% 추출 housing_median_age 컬럼의 사분위수 q1 구하시오 정수형 제출 print(df.head(3)) print(df.shape) #total_bedrooms 결측치 존재 print(df.isna().sum()) df2 = df['total_bedrooms'].isnull() df2 = df.dropna() print(df2.isna().sum()) 특정열 제거랑 모든 열 제거랑 둘 다 기억하기 # 특정 열만 제거 df2 = df[~df['total_bedrooms'].isnull()] # 모든 열의 결측치 제거하는 함수 df2 = df.dropna() print(df2.isna().sum()) # 0.7% ..

결측치 칼럼 제거 ~ isnull(), iloc.인덱싱

# f1컬럼 결측치 제거 # temp[(temp['city']=='경기') & (temp['f2']==0)]['f1'] 완전 아님!!!! # df['f1'] = df[~df['f1'].isnull()] 이거 아님 - df = df[~df['f1'].isnull()] print(df.isna().sum()) city가 경기, f2가 0임 temp = df.groupby(['city','f2']).sum() print(temp) age f1 f5 city f2 경기 0 720.4 833.0 943.944823 1 696.0 670.0 657.241212 2 239.0 311.0 362.300060 대구 0 387.0 527.0 183.199568 1 217.6 235.0 241.333824 2 140.0 2..

표준편차 std, 절댓값 abs

'f4'컬럼 값이 'ENFJ'와 'INFP'인 'f1'의 표준편차 차이를 절대값으로 구하시오 way1 abs는 pandas도 존재함 f1 칼럼인덱싱 한 번에 하면 더 좋음 df[df['f4']=='ENFJ'] df[df['f4']=='ENFJ']['f1'].std() enfj = df[df['f4']=='ENFJ']['f1'].std() infp = df[df['f4']=='INFP']['f1'].std() print(np.abs(enfj - infp)) way2 ENFJ = df[df['f4']=='ENFJ'] INFP = df[df['f4']=='INFP'] # 조건에 맞는 f1의 표준편차 (ENFJ, INFP) E_std = ENFJ['f1'].std() I_std = INFP['f1'].std()..

np의 floor, ceil, trunc

np.floor(df['age']): 'age' 열의 값들을 소수점을 버린 값으로 대체합니다. np.floor() 함수는 소수점 아래를 버리는 연산을 수행합니다. 예를 들어, 3.7은 3으로 변환됩니다. df['age'] - np.floor(df['age']): 'age' 열의 원래 값에서 소수점을 버린 값을 뺍니다. 이렇게 하면 소수 부분만 남게 됩니다. 예를 들어, 3.7에서 3을 빼면 0.7이 남습니다. (df['age'] - np.floor(df['age'])) != 0: 이 식은 소수 부분이 0이 아닌지를 확인합니다. 결과적으로, 소수 부분이 있는 값들은 True를 반환하고, 소수 부분이 0인 정수 값들은 False를 반환합니다. df[(df['age'] - np.floor(df['age']))..

Data must be 1-dimensional 오류

Data must be 1-dimensional 오류 의심할 부분 빅데이터 분석기사 시험응시 시 2유형 문제풀이를 가정했을 때이다. 코드는 빅데이터 분석기사 4회기출을 기반하고 있다. 1. minmax 를 먼저 하고 train, submission으로 나누기 ndarray 배열이므로 iloc 사용 안 하고 -> 슬라이싱 사용하기 def get_data(dfX,Y): X = dfX.drop(columns='ID') scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X) X1_use = X_scaled[:6665, :] X1_submission = X_scaled[6665:, :] Y1 = Y['Segmentation'] print(X1_use.shape, ..

2유형 주의사항, 평가지표

2유형 dtype : ML은 object 돌아가지 않음 결측치 처리는 간단하게만 하자 평균대체^^ type 확인 날짜/시간 -> datetime으로 바꾸기 -> year, month, day, hour, weekday -> year가 같으면 삭제하기 시간제한(1분) 꼭 꼭 꼭 확인하기 - 걍 하지 말자^^, 개수 디폴트여도 무난함 - 최적의 파라미터 찾기위해 GridSearchCV - 이거 절대 절대 절대로 남겨두면 안됨 무조건 1분 넘으니까 주석하기 너무 많은 시간을 쓰지 말고 기본만 해두고 절반 점수만 받자 평가 (2항분류, 다항분류, 회귀) - r2_score(y_true, y_pred) 분류 - precision, f1, recall 다항 2항(multi_class='ovo'/ovr) - 전체 확..