QA ≠ Test

QA(품질 보증)는 개념적인 용어이고, TEST는 QA(품질 보증)를 하기 위한 수단이자 방법이다.

TESTING/PROGREMING

[데이터 사이언스 코딩 - Chap.10] 실습 DataFrame 퍼즐 문제 풀어보기

품생품사(品生品死) 2021. 8. 3. 00:12
반응형

[문제] DataFrame 퍼즐 풀기

데이터프레임이 있습니다.

 

This is data_science_0001
데이터프레임 예시

코드를 4줄만 써서, 아래 데이터프레임으로 바꿔보기 입니다.

 

This is data_science_0002
퍼즐 푼 후 출력 예시

어느 부분이 바뀌었을까요?

잘 안풀린다면, 아래 설명을 보면서 하나씩 풀어보시기 바랍니다.

Puzzle_before.csv
0.47MB

 

과제 해설

두 이미지를 잘 살펴보면, 세 가지의 변화가 있었음을 발견할 수 있습니다.

This is data_science_0003
This is data_science_0004

 

'A' column이 모두 2배가 되었습니다.

이 변화는 아래와 같이 작성할 수 있습니다.

df['A'] = df['A'] * 2

 

'B'에서 'E'까지의 column은 80보다 큰 것은 1, 작은 것은 0으로 바뀌었습니다.

이 내용은 리스트와 불린 연산을 활용해서 해결할 수 있습니다.

# 80보다 작은 값은 0으로 변경
lowers = df.loc[:, 'B':'E'] < 80
df[lowers] = 0

# 80 이상의 값은 1로 변경
highers = df.loc[:, 'B':'E'] >= 80
df[highers] = 1

 

이 코드를 줄여서 이렇게 쓸 수도 있겠죠?

df[df.loc[:, 'B':'E'] < 80] = 0
df[df.loc[:, 'B':'E'] >= 80] = 1

 

2번 index의 'F' column 값이 29에서 99로 바뀌었습니다.

우리가 잘 아는 DataFrame 기본 인덱싱을 활용하면 됩니다.

df.loc[2, 'F'] = 99

 

모든 변경을 코드로 작성하면 아래와 같습니다.

import pandas as pd

df = pd.read_csv('data/Puzzle_before.csv')

df['A'] = df['A'] * 2
df[df.loc[:, 'B':'E'] < 80] = 0
df[df.loc[:, 'B':'E'] >= 80] = 1
df.loc[2, 'F'] = 99

df

 

This is data_science_000
Data Science

요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 구글 데이터 스튜디오, 데이터 웨어 하우스 , 빅 데이터 클라우드

반응형