본문 바로가기

데이터 분석 학습

6장 자유자재로 데이터 가공하기 (2)

반응형

6-2 조건에 맞는 데이터만 추출하기

여러 조건 중 하나 이상 충족하는 행 추출

# 수학 점수가 90점 이상이거나 영어 점수가 90점 이상인 경우
exam.query('math >= 90 or english >= 90')

#영어 점수가 90점 미만이거나 과학 점수가 50점 미만인 경우
exam.query('english < 90 | science < 50')

목록에 해당하는 행 추출하기

# 1,3,5반에 해당하면 추출
exam.query('nclass == 1 or nclass == 3 or nclass == 5')

exam.query('nclass in [1,3,5]')

추출한 행으로 데이터 만들기

# nclass가 1인 행 추출해 nclass1에 할당
nclass1 = exam.query('nclass == 1')

# nclass가 2인 행 추출해 nclass2에 할당
nclass2 = exam.query('nclass == 2')

nclass1['math'].mean()

##출력: 46.25
# nclass가 1인 행 추출해 nclass1에 할당
nclass1 = exam.query('nclass == 1')

# nclass가 2인 행 추출해 nclass2에 할당
nclass2 = exam.query('nclass == 2')

nclass2['math'].mean()

##출력: 61.25

문자 변수 이용해 조건에 맞는 행 추출하기

df = pd.DataFrame({'sex'     : ['F', 'M', 'F', 'M'],
                   'country' : ['Korea', 'China', 'Japan', 'USA']})
df

# 전체 조건에 작은따옴표, 추출할 문자에 큰따옴표 사용
df.query('sex == "F" & country == "Korea"')

# 전체 조건에 큰따옴표, 추출할 문자에 작은따옴표 사용
df.query("sex == 'M' & country == 'China'")

외부 변수를 이용해 추출하기

변수명 앞에 @를 붙여서 조건을 입력

var = 3
exam.query('nclass == @var')

파이썬에서 사용하는 기호

데이터 프레임 출력 제한 설정

pd.set_option('display.max_rows', None)     # 모든 행 출력하도록 설정
pd.set_option('display.max_columns', None)  # 모든 열 출력하도록 설정

pd.reset_option('display.max_rows')     # 행 출력 제한 되돌리기
pd.reset_option('display.max_columns')  # 열 출력 제한 되돌리기

 

혼자서 해보기-mpg 데이터를 이용해 분석 문제 해결

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

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

mpg_displ4 = mpg.query('displ <= 4')
mpg_displ5 = mpg.query('displ >= 5')

mpg_displ4['hwy'].mean()
## 출력: 25.96319018404908

mpg_displ5['hwy'].mean()
## 출력: 18.07894736842105

mpg_displ4['hwy'].mean() > mpg_displ5['hwy'].mean()
## 출력: True

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

mpg_audi = mpg.query('manufacturer == "audi"')
mpg_toyotam = mpg.query('manufacturer == "toyota"')

mpg_audi['cty'].mean()
##출력: 17.61111111111111

mpg_toyotam['cty'].mean()
##출력: 18.529411764705884

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

mpg_a = mpg.query('manufacturer in ["chevrolet", "ford", "honda"]')
mpg_a['hwy'].mean()

##출력: 22.50943396226415

 

 

 

 

※ 해당 내용은 <Do it! 파이썬 데이터 분석>의 내용을 토대로 학습하며 정리한 내용입니다.

반응형