<aside> 👉 제출 안내

</aside>


https://notion-widget-kit.vercel.app/timer?목표일=20250115&목표시간=1630&글꼴번호=2&크기=20&굵기=3&머리말=✅제출까지&꼬리말=남음🔥&외부간격=20&내부간격=10&배경색=White&글자색=Black


<aside> ✅

선행 커맨드

import seaborn as sns
import pandas as pd

</aside>

<aside> ◾

문제 1


데이터 변형 - Iris 데이터셋을 활용하여 다음을 수행하세요:

  1. Iris 데이터셋을 불러옵니다.
  2. sepal_length가 평균보다 큰 데이터와 평균보다 작은 데이터를 각각 필터링하여 두 개의 데이터프레임을 만드세요.
  3. 새로운 열 category를 추가하여 각 행이 'above_average'인지 'below_average'인지 표시하세요.
  4. 위 두 데이터프레임을 concat을 사용하여 하나로 합칩니다. (category가 above_average인 데이터 프레임 → category가 below_average인 데이터프레임 순서)
  5. 최종 데이터프레임 concat_df의 50, 120번째 행을 출력하세요.

Skeleton code

# Iris 데이터셋 로드
iris = sns.load_dataset("iris")

"""
코드 입력
"""

# 최종 데이터프레임 출력
print(concat_df.iloc[50])
print(concat_df.iloc[120])

출력 결과

'''
sepal_length              7.2
sepal_width               3.0
petal_length              5.8
petal_width               1.6
species             virginica
category        above_average
Name: 50, dtype: object
sepal_length              5.5
sepal_width               2.3
petal_length              4.0
petal_width               1.3
species            versicolor
category        below_average
Name: 120, dtype: object
'''

</aside>

<aside> ◾

문제 2


Iris 데이터셋과 새로운 데이터프레임을 활용하여 다음을 수행하세요:

  1. Iris 데이터셋을 불러옵니다.
  2. species별 평균 petal_length와 평균 petal_width를 계산하여 새로운 데이터프레임 species_avg를 만드세요. reset_index()를 사용하여, index를 재지정하세요.
  3. 데이터프레임의 열 이름은 species, avg_petal_length, avg_petal_width로 지정합니다. species_avg와 원래의 Iris 데이터셋을 merge를 사용해 species를 기준으로 병합하세요.
  4. 최종 데이터프레임 merged_df의 10, 50, 120번째 행을 출력하세요.

힌트


Skeleton code

# Iris 데이터셋 로드
iris = sns.load_dataset("iris")

"""
코드 입력
"""

# 결과 출력
print(merged_df.iloc[10])
print(merged_df.iloc[50])
print(merged_df.iloc[120])

출력 결과

'''
sepal_length           5.4
sepal_width            3.7
petal_length           1.5
petal_width            0.2
species             setosa
avg_petal_length     1.462
avg_petal_width      0.246
Name: 10, dtype: object
sepal_length               7.0
sepal_width                3.2
petal_length               4.7
petal_width                1.4
species             versicolor
avg_petal_length          4.26
avg_petal_width          1.326
Name: 50, dtype: object
sepal_length              6.9
sepal_width               3.2
petal_length              5.7
petal_width               2.3
species             virginica
avg_petal_length        5.552
avg_petal_width         2.026
Name: 120, dtype: object
'''

</aside>

<aside> ◾

추가 문제


데이터 집계 - Tips 데이터셋을 활용하여 다음을 수행하세요:

  1. Tips 데이터셋을 불러옵니다.
  2. 요일(day)과 시간(time)을 기준으로 그룹화하여 평균 팁(tip)과 총 금액(total_bill)을 계산하세요.
  3. 결과를 피벗 테이블로 변환하여 출력하세요.

힌트 : groupby()와 pivot_table()을 활용하세요.


Skeleton code

# Tips 데이터셋 로드
tips = sns.load_dataset("tips")

"""
코드 작성
"""

print(pivot_table)

출력 결과

'''
           tip           total_bill         
time     Lunch    Dinner      Lunch   Dinner
day                                         
Thur  2.767705  3.000000    1077.55    18.78
Fri   2.382857  2.940000      89.92   235.96
Sat        NaN  2.993103       0.00  1778.40
Sun        NaN  3.255132       0.00  1627.16
'''

image.png

</aside>


<aside> 👉 제출

</aside>


https://notion-widget-kit.vercel.app/timer?목표일=20250115&목표시간=1630&글꼴번호=2&크기=20&굵기=3&머리말=✅제출까지&꼬리말=남음🔥&외부간격=20&내부간격=10&배경색=White&글자색=Black