빅데이터 분석기사/작업 유형 1 문제 풀이

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

유방울 2023. 6. 16. 19:48

캘리포니어 집값 데이터 

결측치를 포함하는 모든 행 제거 후 처음부터 순서대로 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% 는 행 14303
print(df2.shape, df2.shape[0]*0.7)
df3 = df2.iloc[:14303,:]
print(df3.shape)

문제 잘 보고 출력 형태 제대로 보기

q1은 0.25, 2는 0.5, 3은 0.75임

print(int(df3['housing_median_age'].quantile(0.25)))

19

연도별 나라별 유병률 데이터

2000년 데이터에 대해 국가 전체 유병률 평균 값보다 큰 값을 가진 국가 개수는?

# 숫자는 조건에 넣을 때 괄호 안 함
df_2000 = df[df['year']==2000]
df_2000
t = df_2000.T
print(t.shape)
print(t.head())

(194, 1)
                  1
year         2000.0
Afghanistan     0.0
Albania       132.0
Algeria         0.0
Andorra       138.0
f = t.iloc[1:,:] 
m = f.mean()
print((f > m).sum().sum())

76

 

df

	PassengerId	Survived	Pclass	Name	Sex	Age	SibSp	Parch	Ticket	Fare	Cabin	Embarked
0	1	0	3	Braund, Mr. Owen Harris	male	22.0	1	0	A/5 21171	7.2500	NaN	S
1	2	1	1	Cumings, Mrs. John Bradley (Florence Briggs Th...	female	38.0	1	0	PC 17599	71.2833	C85	C
2	3	1	3	Heikkinen, Miss. Laina	female	26.0	0	0	STON/O2. 3101282	7.9250	C85	S
3	4	1	1	Futrelle, Mrs. Jacques Heath (Lily May Peel)	female	35.0	1	0	113803	53.1000	C123	S
4	5	0	3	Allen, Mr. William Henry	male	35.0	0	0	373450	8.0500	C123	S

survived를 데이터 프레임형식으로 가지고 오기

df.iloc[1:,1:2]

Survived
1	1
2	1
3	1
4	0
5	0
...	...
886	0
887	1
888	0
889	1
890	0
890 rows × 1 columns

survived의 값만 반환하고 싶다! -> 시리즈로 나오기

df.iloc[1:,1]

1      1
2      1
3      1
4      0
5      0
      ..
886    0
887    1
888    0
889    1
890    0
Name: Survived, Length: 890, dtype: int64

loc 인덱싱 사용

iloc 인덱싱은 위치기반이기 때문에 숫자만 가능 -> 문자열 사용 불가능

df.loc[1:,'Survived']
1      1
2      1
3      1
4      0
5      0
      ..
886    0
887    1
888    0
889    1
890    0
Name: Survived, Length: 890, dtype: int64

타이타닉 데이터

각 열의 결측치 비율 확인 후 결측치의 비율이 가장 높은 변수명을 구하시오

na = df.isna().sum()
print(na)

PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          118
Embarked         2
dtype: int64
pandas.core.series.Series

argmax() 속성 중에서 가장 큰 값 찾기

그 값의 인덱스 찾는..

print(na.index[na.argmax()])

way 2

na = df.isna().sum().sort_values(ascending=False)
print(isna.index[0])
Age