Re:제로부터 시작하는 갓생
[Python] 25/01/20 베이직 실습4 본문
문제 1번
윤년이면 True, 윤년이 아니면 False를 출력하는 코드를 작성하세요
4로 나누어떨어지는 해는 윤년으로 한다. (2016년, 2020년, 2024년 등등)
4와 100으로 나누어떨어지는 해는 평년으로 한다. (1900년, 2100년, 2200년)
4, 100, 400으로 나누어떨어지는 해는 윤년으로 한다. (2000년, 2400년)
Skeleton code
year = int(input("연도를 입력하세요: ")) """ 코드 입력 """
출력 결과
# 2016 True # 2100 False # 2000 True
* 정답
* 시도
작성하는 동안 틈새틈새 print 출력으로 맞는지 확인하면서 수정해나감
year = int(input("연도를 입력하세요: "))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0 :
print(True)
else:
print(False)
문제 2번
* Seaborn 라이브러리에서 제공하는 Penguins 데이터셋을 활용하여 다음을 수행하세요:
1) Penguins 데이터셋을 불러옵니다.
2) bill_length_mm이 species별 bill_length_mm의 평균(”mean_bill_length”)보다 작은 데이터를 선택하세요.
3) 선택된 데이터에 새 열을 추가하여, bill_length_mm과 bill_depth_mm을 조합하여 다음과 같은 규칙으로 계산한 값을 저장하세요:
- bill_length_mm * 0.5 + bill_depth_mm * 0.3 새 열의 이름은 weighted_bill로 지정하세요.
4) weighted_bill이 25 이상인 행만 추가로 필터링하여 출력하세요.
5) species 값의 문자열 길이가 6보다 크면 "long", 6 이하면 "short"으로 분류하는 새 열을 추가하세요.
새 열의 이름은 species_length_category로 지정하세요.
힌트:
2) groupby를 사용하여, species별 bill_length_mm의 평균 데이터 프레임을 생성하여 merge하거나,
다음 transform 함수를 사용할 수 있습니다. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.transform.html
5) apply()와 lambda를 사용하여 조건에 따른 새 열을 생성할 수 있습니다.
결과: final_result'species', 'island', 'bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g', 'sex', 'mean_bill_length', 'weighted_bill', 'species_length_category'
10번째, 90번째 행을 출력하세요
Skeleton code
# 1) Penguins 데이터셋 로드 penguins = sns.load_dataset("penguins") """ 코드 입력 """ # 결과 출력 print(final_result.iloc[10]) print(final_result.iloc[90])
출력 결과
''' species Chinstrap island Dream bill_length_mm 45.9 bill_depth_mm 17.1 flipper_length_mm 190.0 body_mass_g 3575.0 sex Female mean_bill_length 48.833824 weighted_bill 28.08 species_length_category long Name: 166, dtype: object species Gentoo island Biscoe bill_length_mm 41.7 bill_depth_mm 14.7 flipper_length_mm 210.0 body_mass_g 4700.0 sex Female mean_bill_length 47.504878 weighted_bill 25.26 species_length_category short Name: 326, dtype: object '''
* 정답
* 시도
문제부터 이해를 못해서 2번부터 막혀버려...
from itertools import groupby
# 1) Penguins 데이터셋 로드
penguins = sns.load_dataset("penguins")
# 2) ?
# penguins[mean_bill_length] = penguins.groupby('species')['bill_length_mm'].transforms(mean)
# mean_penguins = penguins[bill_length_mm < mean_bill_length]
# 3) ?
# 4) ?
filter
# 5) ?
# 결과 출력
print(final_result.iloc[10])
print(final_result.iloc[90])
배운점
transform
lambda
iloc
loc
'CodeKata > Task' 카테고리의 다른 글
[Python] 25/01/21 베이직 실습5 (0) | 2025.01.22 |
---|---|
[Python] 25/01/15 베이직 실습3 (0) | 2025.01.15 |
[Python] 25/01/13 베이직 실습2 (0) | 2025.01.13 |
[Python] 25/01/09 베이직 실습1 (0) | 2025.01.09 |