HW2

bigdata
Author

tiger

Published

July 16, 2024

1.144page

자동차 배기량에 따라 고속도로 연비가 다른지 알아보려고 합니다. 배기량이 4 이하인 자동차와 5이상인 자동차 중 어떤 자동차의 고속도로 연비 평균이 더 높은지 알아보세요.

import pandas as pd
import numpy as np    
df=pd.read_csv('data/mpg.csv')
df_4=df.query("displ<=4")
df_5=df.query("displ>=5")
print(f"displ이 4 이하인 자동차의 hwy 평균:{df_4['hwy'].mean()}")
print(f"displ이 5 이상인 자동차의 hwy 평균:{df_5['hwy'].mean()}")
df_hwy=np.where(((df_4["hwy"].mean())>(df_5["hwy"].mean())),"displ이 4이하인 자동차의 평균이 더 높다","displ이 5이상인 자동차의 평균이 더 높다.")
print(df_hwy)
displ이 4 이하인 자동차의 hwy 평균:25.96319018404908
displ이 5 이상인 자동차의 hwy 평균:18.07894736842105
displ이 4이하인 자동차의 평균이 더 높다

자동차 제조 회사에 따라 도시 연비가 어떻게 다른지 알아보려고 합니다. audi와 toyota중 어느 자동차 제조 회사의 도시 연비 평균이 더 높은지 알아보세요.

df_audi=df.query("manufacturer=='audi'")
df_toyota=df.query("manufacturer=='toyota'")
print(f"audi의 도시 연비 평균: {df_audi["cty"].mean()}")
print(f"toyota의 도시 연비 평균: {df_toyota["cty"].mean()}")
df_max=np.where(((df_audi["cty"].mean())>(df_toyota["cty"].mean())),"audi의 평균이 더 높다","toyota의 평균이 더 높다.")
print(df_max)
audi의 도시 연비 평균: 17.61111111111111
toyota의 도시 연비 평균: 18.529411764705884
toyota의 평균이 더 높다.

chevrolet, ford, honda 자동차의 고속도로 연비 평균을 알아보려고 합니다. 세 회사의 데이터를 추출한 다음 hwy 의 전체 평균을 구해 보세요.

df_3car=df.query("manufacturer in ['chevrolet', 'ford', 'honda']")
print(f"세 자동차의 hwy 전체 평균: {df_3car['hwy'].mean()}")
세 자동차의 hwy 전체 평균: 22.50943396226415

2.153page

audi에서 생산한 자동차 중에 어떤 자동차 모델의 hwy가 높은지 알아보려고 한다.

audi 에서 생산한 자동차 중 hwy가 1~5위에 해당하는 자동차의 데이터를 출력하세요.

df.query("manufacturer=='audi'").sort_values("hwy",ascending=False).head()
manufacturer model displ year cyl trans drv cty hwy fl category
2 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
3 audi a4 2.0 2008 4 auto(av) f 21 30 p compact
1 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
0 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
9 audi a4 quattro 2.0 2008 4 manual(m6) 4 20 28 p compact

3. 158page

mpg 데이터 복사본을 만들고, cty와 hwy를 더한 ’합산 연비 변수’를 추가하세요.

df1=df.copy()
df1=df1.assign(cum_effi=df1['cty']+df1['hwy'])
df1.head()
manufacturer model displ year cyl trans drv cty hwy fl category cum_effi
0 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 47
1 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 50
2 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact 51
3 audi a4 2.0 2008 4 auto(av) f 21 30 p compact 51
4 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact 42

앞에서 만든 ’합산 연비 변수’를 2로 나눠 ’평균 연비 변수’를 추가해주세요.

df1=df1.assign(mean_effi=df1['cum_effi']/2)
df1.head()
manufacturer model displ year cyl trans drv cty hwy fl category cum_effi mean_effi
0 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 47 23.5
1 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 50 25.0
2 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact 51 25.5
3 audi a4 2.0 2008 4 auto(av) f 21 30 p compact 51 25.5
4 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact 42 21.0

’평균 연비 변수’가 가장 높은 자동차 3종의 데이터를 출력하세요.

df1.sort_values('mean_effi',ascending=False).head(3)
manufacturer model displ year cyl trans drv cty hwy fl category cum_effi mean_effi
221 volkswagen new beetle 1.9 1999 4 manual(m5) f 35 44 d subcompact 79 39.5
212 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compact 77 38.5
222 volkswagen new beetle 1.9 1999 4 auto(l4) f 29 41 d subcompact 70 35.0

1~3 번 문제를 해결할 수 있는 하나로 연결된 pandas 구문을 만들어 실행해 보세요. 데이터는 복사본 대신 원본을 사용해 보세요.

df=df.assign(
    cum_effi=df1['cty']+df1['hwy'],
    mean_effi=df1['cum_effi']/2)
df1.sort_values('mean_effi',ascending=False).head(3)
manufacturer model displ year cyl trans drv cty hwy fl category cum_effi mean_effi
221 volkswagen new beetle 1.9 1999 4 manual(m5) f 35 44 d subcompact 79 39.5
212 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compact 77 38.5
222 volkswagen new beetle 1.9 1999 4 auto(l4) f 29 41 d subcompact 70 35.0