프로그래밍/파이썬

EDA - 2단계 : 실제 데이터 다루기 (2)

매 석 2023. 7. 27. 18:25
반응형

- 출처

 

빅데이터 연합 동아리 BITAmin : 네이버 카페

빅데이터 연합 동아리 비타민입니다.

cafe.naver.com

 

멤버 9기 코딩 테스트 문제입니다.

환경은 주피터 노트북입니다.

 

 

- 문제1

1번

  • tips 에서 day 열값 분포를 구하세요.
  • 수치형 데이터의 요약 (평균, 사분위 수 등)을 구하시오.
tips['day'].value_counts()
tips.describe()

 

 

2번

  • sex 별 tip 의 최댓값을 구하세요.
  • Hint: loc[ ]
male=tips['sex']=="Male"
female=tips['sex']=="Female"
max_male=tips['tip'].loc['male'].max()
max_female=tips['tip'].loc['female'].max()

 

3번

  • total_bill 과 tip 의 상관계수를 구하시오.
  • tip 을 total_bill 로 나눈 값을 float 타입으로 저장하여 tip_percent 칼럼에 저장하시오.
tips['total_bill'].corr(tips['tip'])
tip_percent=tips['tip']/tips['total_bill'].astype('float')

 

4번

  • 목요일에는 Tip 을 1 달러 더 받았지만, 데이터 작성에 문제가 있었다고 합니다.
  • 목요일 Tip 값을 thur_new 에 저장하세요.
  • Hint: Apply, Lambda 사용
thur_new=tips['tip'].loc[tips['day']=="Thur"].apply(lambda x:x+1)

 

 

- 문제2

1번

  • mpg.csv를 불러와 mpg에 저장한 후, 위에서부터 5행을 출력하세요.
mpg=pd.read_csv('mpg.csv')
mpg.head()

 

2번

  • fl 데이터 빈도수를 알파벳 순서대로(ex. a->b->c) 출력하세요.
mpg['fl'].value_counts().sort_index()

 

3번

  • mpg1이라는 새로운 데이터 프레임을 생성 후, mpg1 데이터를 출력하세요.
  • 이 데이터 프레임은 fl, price_fl이라는 두 열을 가지고 있습니다.
mpg1 = pd.DataFrame({'fl': ['c', 'd', 'e','p','r'],
                    'price_fl': [2.66,2.23,2.11,2.89,2.49]})
mpg1

 

4번

  • mpg 데이터와 mpg1 데이터를 fl열을 기준으로 병합한 후, mpg2에 저장하고 mpg2를 출력하세요.
mpg2=pd.merge(mpg,mpg1, on='fl')
mpg2

 

5번

  • mpg2 데이터를 사용해주세요.
  • group 제조사(manufacturer)로 그룹화 한 후, 다시 클래스(class)별로 그룹화하여 평균을 구해주세요.
  • Hint: groupby()
mpg2.groupby(['manufacturer','class'].mean()


6번

  • mpg2 데이터를 manufacturer 별로 그룹화하여, displ, price_fl의 count, max, min, mean 값을 구해주세요.
mpg2.groupby('manufacturer')['displ','price_fl'].agg(['count','max','min','mean'])

 

7번

  • mpg2 데이터를 사용해주세요.
  • hwy(연비)가 가장 높은/많은 상위 5개의 manufacturer을 추출하여, top5의 인덱스만 추출해, top5_manufacturer에 저장해주세요.
  • top5_manufacturer을 출력해주세요.
  • Hint: top5 구할 때, 제조사 별로 묶어서 합하기
top5_manufacturer=mpg2.groupby('manufacturer').sum().sort_values(by=['hwy'],ascending=['False'])
top5_manufacturer.head()

 

-문제3

  • 2022년 1월 ~ 12월의 각 월별 마지막 날짜를 값으로 갖는 시계열 데이터프레임 happy2022을 만들어주세요.
  • happy2022 데이터프레임의 열 이름은 date로 지정해주세요.
  • happy2022를 출력해주세요
  • Hint: period, freq 사용

 

 

happy2022=pd.DataFrame({'date':pd.data_range('2022-01-31',period=12,freq='M')})