반응형
문제 1
- 데이터셋(basic1.csv)의 'f5' 컬럼을 기준으로 상위 10개의 데이터를 구하고,
- 'f5' 컬럼 10개 중 최소값으로 데이터를 대체한 후,
- 'age' 컬럼에서 80 이상인 데이터의 'f5' 컬럼 평균값 구하기
# 라이브러리 및 데이터 불러오기
import pandas as pd
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
df.head()
# f5 컬럼을 기준으로 내림차순 정렬
df = df.sort_value('f5' ascending = False)
df.head(10)
# 최소값 찾기
min = df['f5'][:10].min()
min
df.iloc[:10, -1] = min
df.head(10)
# 80세 이상의 f5 컬럼 평균
print(df[df['age'] >= 80]['f5'].mean())
문제 2
- 데이터셋(basic1.csv)의 앞에서 순서대로 70% 데이터만 활용해서,
- 'f1' 컬럼 결측치를 중앙값으로 채우기 전후의 표준편차를 구하고
- 두 표준편차 차이 계산하기
# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
# 데이터 나누기 방법1
data70 = df.iloc[:70]
data30 = df.iloc[70:]
# 데이터 나누기 방법2
# data70, data30 = np.split(df, [int(.7*len(df))])
# 데이터 나누기 방법3 (랜덤으로 샘플링하라고 했을 때)
# data70 = df.sample(frac = 0.7)
# data70 = df.drop(data70.index)
data70.tail()
data70.isnull().sum()
before = data70['f1'].std()
med = data70['f1'].median()
data70['f1'] = data70['f1'].fillna(med)
after = data70['f1'].std()
print(before - after)
문제 3
- 데이터셋(basic.csv)의 'age' 컬럼의 이상치를 더하시오!
- 단, 평균으로부터 '표준편차*1.5'를 벗어나는 영역을 이상치라고 판단함
# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
std = df['age'].std()*1.5
mean = df['age'].mean()
min_out = mean - std
min_max = mean + std
print(min_out, max_out)
df[(df['age']>max_out)|(df['age']<min_out)]['age'].sum()
반응형
'빅데이터분석기사 > 코드' 카테고리의 다른 글
[빅데이터분석기사] 실기 3회 1유형 풀이(Python) (0) | 2023.06.16 |
---|---|
[빅데이터분석기사] 실기 2회 2유형 풀이(Python) (0) | 2023.06.15 |
[빅데이터분석기사] 작업형 2유형 연습문제 #2 (0) | 2023.06.14 |
[빅데이터분석기사] 작업형 2유형 연습문제 #1 (0) | 2023.06.12 |
[빅데이터분석기사] 작업형 1유형 연습문제 #2 (0) | 2023.05.31 |