top of page

스터디

공개·회원 16명

김다빈

현당원 (정당원)

10월 2주차 파이썬 스터디


이번주는 중간고사 대비 파이썬 정리하여, 정리본 올립니다.


<ch.3>

[p. 37-39]

1. 시험 변수 만들고 출력하기

# score = [80, 60, 70, 50, 90]

2. 합계 점수 구하기

# sum(score)

3. 합계 점수 변수 만들어 출력하기

# sum_score = sum(score)

# sum_score

 

 

<ch.4>

[p. 13-15]

1. 다음 표의 내용을 데이터 프레임으로 만들어 출력하기

# sales = pd.DataFrame({'fruit' : ['사과', '딸기', '수박'], 'price' : [1800, 1500, 3000], 'volume' : [24, 38, 13]})

# sales

2. 앞에서 만든 데이터 프레임 이용해, 과일 가격 평균과 판매량 평균 구하기

# sum(sales['price']) / 3

# sum(sales['volume']) / 3

 

 

<ch.5>

[p.28-31]

1. mpg 데이터 불러오기

# mpg = pd.read_csv('mpg.csv')

2. 복사본 만들기

# mpg_new = mpg.copy()

3. 변수명 바꾸기

# mpg_new = mpg_new.rename(columns = {'cty' : 'city'})

# mpg_new = mpg_new.rename(columns = {'hwy' : 'highway'})

4. 데이터 일부 출력하여, 변수명 변경되었는지 확인

# mpg_new.head()    

[p.55-61]

1. midwest.csv 불러와서 특징 파악하기

# midwest = pd.read_csv('midwest.csv')

# midwest.head()

# midwest.tail()

# midwest.shape

# midwest.info()

# midwest.describe()

2. 변수명 수정 (poptotal-> total, popasian-> asian)

# midwest = midwest.rename(columns = {'poptotal' : 'total' })

# midwest = midwest.rename(columns = {'popasian' : 'asian'})

3. 파생변수 추가('전체 인구 대비 아시아 인구 백분율')

# midwest['ratio'] = midwest['asian'] / midwest['total'] * 100

4. 히스토그램 만들어 분포 살피기 

# midwest['ratio'].plot.hist()

5. 아시아 인구 백분율 전체 평균 구하기

# midwest['ratio'].mean()

6. 평균 초과시 'large', 외에는 'small' 부여하기

# midwest['group'] = np.where(midwest['ratio']> 0.4872, 'large', 'small')

7. 'large'와 'small'에 해당하는 지역이 얼마나 많은지 빈도표 만들기

# count_group = midwest['group'].value_counts()

# count_group

8. 막대 그래프 만들기

# count_group.plot.bar(rot = 0)

 

 

<ch.6>

# df.query()-> 조건에 맞는 데이터만 추출하기

# df.sort_values()-> 순서대로 정렬하기

# df.assign()-> 파생변수 추가하기

[p. 27-30]

# 1. 자동차 배기량에 따라 고속도로 연비 다른지 알아보고자 함. displ(배기량)이 4 이하인 자동차와 5 이상인 자동차 중 어떤 자동차의 hwy(고속도로 연비) 평균이 더 높은지 알아보기

# mpg = pd.read_csv('mpg.csv')

# mpg_a = mpg.query('displ <= 4')

# mpg_b = mpg.query('displ >= 5')

# mpg_a['hwy'].mean()

# mpg_b['hwy'].mean()

# 2. 자동차 제조회사 따라 도시 연비 다른지 알아보고자 함. 'audi', 'toyota' 중 어느 manufacturer(자동차 제조회사)의 cty(도시 연비) 평균이 더 높은지 알아보기

# mpg_audi = mpg.query('manufacturer == "audi"')

# mpg_toyota = mpg.query('manufacturer == "toyota"')

# mpg_audi['cty'].mean()

# mpg_toyota['cty'].mean()

# 3. 'chevrolet', 'ford', 'honda' 자동차의 고속도로 연비 평균은? 데이터 추출하고 hwy 전체 평균 구해봐.

# (manufacturer가 세 회사에 해당하면 추출)

# mpg_new = mpg.query('manufacturer in ["chevroret", "ford", "honda"]')

# mpg_new['hwy'],mean()

[p. 44-46]

# 1. mpg 데이터는 11개 변수로 구성됨. 일부만 추출하려고 함. mpg 데이터에서 category(자동차 종류), cty(도시 연비) 변수 추출해, 새로운 데이터 만들기. 새로운 데이터 일부 출력해 두 변수로만 구성되어 있는지 확인하기

# mpg = pd.read_csv('mpg.csv')-> mpg 데이터 불러오기

# mpg_new = mpg[['category', 'cty"]] -> 이거 왜 [[]]?

# mpg_new.head()

# 2.위 추출한 데이터 이용해 category(자동차 종류)가 'suv'와 'compact' 중 어떤 게 cty(도시 연비) 평균 높은지 알아보기

# mpg_new.query('category == "suv"')['cty'].mean()

# mpg_new.query('category == "compact"')['cty'].mean()

[p. 53]

# 1. 'audi'에서 생산한 자동차 중 hwy(고속도로 연비) 높은 1~5위를 출력하세요

# mpg = pd.read_csv('mpg.csv')

# mpg.query('manufacturer == "audi"')

# mpg.sort_values('hwy', ascending = False)

# mpg.head()

[p. 62-66]

# 1. mpg 데이터 복사분 만들기

# mpg = pd.read_csv('mpg.csv')

# mpg_new = mpg.copy()

# 2. cty와 hwy 더한 '합산 연비 변수' 추가하세요

# mpg_new = mpg_new.assign(total = mpg_new['cty'] + mpg_new['hwy'])

# 3. '합산 연비 변수' 2로 나눠 '평균 연비 변수' 추가하세요

# mpg_new = mpg_new.assign(mean = mpg_new['total'] / 2)

# 4. '평균 연비 변수' 가장 높은 자동차 3종 데이터 출력하기

# mpg_new.sort_values('mean', ascending = False).head()

# 5. 1~3번 해결 가능한 하나로 연결된 pandas 구문 만들어 실행하기.(데이터는 mpg 원본 이용)

# mpg.assign(total = lambda x: x['cty'] + x['hwy'], mean = lambda x: x['total'] / 2).sort_values('mean', ascending = False).head(3)

[p. 79-84]

# 1. category별 cty 평균을 구하시오.(mpg 데이터의 category는 특징 따라 'suv', 'compact' 등 7종류로 분류한 변수. 어떤 차종의 도시 연비가 높은지 비교.) 

# mpg = pd.read_csv('mpg.csv')

# mpg.groupby('category').agg(mean_cty = ('cty', 'mean'))

# 2. 위 출력 결과는 category값 알파벳순. 어떤 차종 cty(도시 연비)가 높은지 평균 높은 순으로 정렬하기.

# mpg.groupby('category').agg(mean_cty = ('cty', 'mean')).sort_values('mean_cty', ascending = False)

# 3. hwy(고속도로 연비) 평균이 가장 높은 회사 세 곳을 출력하기

# mpg.groupby('manufacturer').agg(mean_hwy = ('hwy', 'mean')).sort_values('mean_hwy', ascending = False).head(3)

# 4. 회사별 'compact' 차종 수 내림차순 정렬하여 출력하기

# mpg.query('category == "compact"').groupby('manufacturer').agg(n= ('manufacturer', 'count')).sort_values('n', ascending = False)

or

# mpg.query('category == "compact"').value_counts('manufacturer')

[p. 95-98]

# 1. mpg 데이터의 f1 변수는 자동차에 사용하는 연료(fuel) 의미. 정보 활용하여 연료와 가격으로 구성된 데이터 프레임 만들기

# fuel = pd.DataFrame({'f1': ['c', 'd', 'e', 'p', 'r'], 'price_f1': [2.35, 2.38, 2.11, 2.76, 2.22]})

# 2. 위 fuel 데이터 이용하여 mpg 데이터에 price_f1(연료 가격) 변수 추가하기

# mpg = pd.read_csv('mpg.csv')

# mpg = pd.merge(mpg, fuel, how = 'left', on = 'f1')

# 3. model, f1, price_f1 변수 추출해 앞부분 5행 출력해보기

# mpg[['model', 'f1', 'price_f1']].head()

[p. 104-109]

# 미국 동북중부 437개 지역의 인구통계 정보 담은 midwest.csv 사용해서 해결하기

# 1. midwest 데이터에 ‘전체 인구 대비 미성년 인구 백분율’ 변수를 추가하기(popadults- 해당 지역의 성인 인구, poptotal- 전체 인구)

# midwest = pd.read_csv('midwest.csv')

# midwest['ratio'] = (midwest['poptotal'] - midwest['popadults'])./midwest['poptotal']*100

# 2. 미성년 인구 백분율 가장 높은 상위 5개 county(지역)의 미성년 인구 백분율 출력하기

# midwest.sort_values('ratio', ascending = False).head().[['county', 'ratio']]

# 3. 분류표 기준 따라 미성년 비율 등급 변수 추가하기

# midwest['grade'] = np.where(midwest['ratio'] >= 40,'large', np.where(midwest['ratio'] >= 30, 'middle', 'small'))

# 4. 각 등급에 지역 몇개 있는지 알아보기

# midwest.groupby('grade').agg(n= ('grade', 'count'))

or

# midwest['grade'].value_counts()

# 4. '전체 인구 대비 아시아인 인구 백분율' 변수 추가하고 하위 10개 지역의 state(주), county(지역), 아시아인 인구 백분율 출력하기(popasian- 해당 지역의 아시아인 인구)

# midwest.assign(ratio_asian = midwest['popasian']/ midwest['poptotal'] * 100.sort_values('ratio_asian').head().[['state', 'county', 'ratio_asian']]

8회 조회

bottom of page