#6. 주어진 데이터에서 'f1'컬럼 결측 데이터를 제거하고, 'city'와 'f2'을 기준으로 묶어 합계를 구하고, 'city가 경기이면서 f2가 0'인 조건에 만족하는 f1 값을 구하시오.
# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
print(df.shape) # (100,8)
print(df.head())
# f1컬럼 결측치 제거
df = df[df['f1'].notnull()] # df = df[~df['f1'].isnull()]
df.shape # (69,8)
# 그룹 합계 계산
df2 = df.groupby(['city','f2']).sum()
df2
# 조건에 맞는 값 출력
print(df2['f1']['경기'][0]) # print(df2.iloc[0]['f1'])
- notnull 함수 또는 '~' 연산자(NOT)와 isnull 함수를 사용하여 f1 컬럼의 결측치를 제거합니다.
- 그룹으로 합계를 계산하고 인덱싱하여 조건에 만족하는 값을 구합니다.
#7. 'f4'컬럼의 값이 'ESFJ'인 데이터를 'ISFJ'로 대체하고, 'city'가 '경기'이면서 'f4'가 'ISFJ'인 데이터 중 'age'컬럼의 최대값을 출력하시오.
# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
df.head()
# ESFJ 값을 가진 데이터 확인
df[df['f4'] == 'ESFJ']
# 값 변경하기
df['f4'] = df['f4'].replace('ESFJ', 'ISFJ') # df.loc[df['f4']=='ESFJ', 'f4'] = 'ISFJ'
# ESFJ 값을 가진 데이터 확인
df[df['f4'] == 'ESFJ']
# 2개의 조건에 맞는 값
df[(df['f4'] == 'ISFJ') & (df['city'] == '경기')]
# 2개의 조건에 맞는 값중 age컬럼의 최대값
df[(df['f4'] == 'ISFJ') & (df['city'] == '경기')]['age'].max()
- replace 함수를 사용하여 값을 변경하거나 인덱싱으로 값을 변경합니다.
- 조건에 맞는 값 중 age컬럼의 최대값을 구합니다.
#8. 주어진 데이터 셋에서 'f2' 컬럼이 1인 조건에 해당하는 데이터의 'f1'컬럼 누적합을 계산한다. 이때 발생하는 누적합 결측치는 바로 뒤의 값을 채우고, 누적합의 평균값을 출력한다. (단, 결측치 바로 뒤의 값이 없으면 다음에 나오는 값을 채워넣는다)
# 라이브러리 및 데이터 불러오기
import pandas as pd
import numpy as np
df = pd.read_csv('../input/bigdatacertificationkr/basic1.csv')
df.head()
# 조건에 따른 누적합
df2 = df[df['f2']==1]['f1'].cumsum()
df2
# 결측치 처리 (뒤에 나오는 값으로 채움)
df2 = df2.fillna(method = 'bfill')
df2
# 평균 출력
print(df2.mean())
- cumsum 함수를 사용하여 누적합을 계산합니다.
- fillna 함수를 사용하여 결측치 처리를 한 뒤, 평균을 구합니다.
+) fillna 함수의 method
pad or ffill: 이전의 유효한 값으로 결측값을 채웁니다. -> df.fillna(method='ffill')
backfill or bfill: 다음의 유효한 값으로 결측값을 채웁니다. -> df.fillna(method='bfill')
딕셔너리(dictionary): 열마다 다른 값으로 채웁니다. -> df.fillna({'A': 0, 'B': 99})
참고 링크
https://www.kaggle.com/code/agileteam/py-t1-6-expected-questions
[py] T1-6. 결측치 제거 및 그룹 합계 Expected Questions
Explore and run machine learning code with Kaggle Notebooks | Using data from Big Data Certification KR
www.kaggle.com
https://www.kaggle.com/code/agileteam/py-t1-7-2-expected-questions
[py] T1-7. 값 변경 및 2개 이상의 조건 Expected Questions
Explore and run machine learning code with Kaggle Notebooks | Using data from Big Data Certification KR
www.kaggle.com
https://www.kaggle.com/code/agileteam/py-t1-8-expected-questions
[py] T1-8. 누적합 그리고 보간(결측치 처리) Expected Questions
Explore and run machine learning code with Kaggle Notebooks | Using data from Big Data Certification KR
www.kaggle.com
참고 링크에서 직접 문제를 풀어보실 수 있습니다.
감사합니다.
'빅데이터 분석기사' 카테고리의 다른 글
[빅데이터 분석기사] 작업형 1유형(T12~14) - 정렬, 상관계수, 다중인덱스 (0) | 2024.06.14 |
---|---|
[빅데이터 분석기사] 작업형 1유형(T9~11) - 표준화, 데이터 변환 (0) | 2024.06.14 |
[빅데이터 분석기사] 작업형 1유형(T3~5) - 결측치, 왜도와 첨도, 표준편차 (2) | 2024.06.13 |
[빅데이터 분석기사] 작업형 1유형(T1~2) - 이상치 (0) | 2024.06.13 |
[빅데이터 분석기사] 작업형 1유형_test (0) | 2024.06.11 |