인프런 커뮤니티 질문&답변

hankilzoa님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

작업형1 모의문제2

6번 문제

해결된 질문

24.06.14 09:07 작성

·

94

0

  • cond=df['age'] <=0

  • df=df[~cond]

  • 으로 0이거나 음수인값들을 제거를 한건데

  •  

  • 첫작성) cond = df['age'] == round(df['age'],0)

  • 수정작성) cond = df['age'] != round(df['age'],0

  • df=df[cond]

  • 여기서 추가로 라운드로 0인값들을 제거한건가요?

  • 첫작성 수정작성 하신 이걸 하신 이유가 뭔지 잘 이해가 안됩니다. 그리고 보시면 처음부터 cond 라는 변수를

  • 수정작성까지 두번세번쓰면서 변수 내용이 계속 바뀐거 같은데 그 이유는 뭘까요 선생님~

답변 2

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2024. 06. 14. 09:38

임의의 데이터

    age
0  25.0
1  30.5
2  22.0
3   0.0
4  -5.0
5  45.0
6  30.0
7  29.9

첫 번째 코드

첫 번째 코드에서는 나이가 0이거나 음수인 값을 제거하는 것입니다:

cond = df['age'] <= 0
df = df[~cond]

conddf['age'] <= 0이라는 조건을 만족하는 값들입니다. 이 조건을 만족하는 값들을 제거하려면 ~cond를 사용하여 해당 조건을 만족하지 않는 값들만 남깁니다. 따라서, 위의 예시에서 0-5가 제거됩니다:

age
0  25.0
1  30.5
2  22.0
5  45.0
6  30.0
7  29.9

두 번째 코드

# 첫 작성
cond = df['age'] == round(df['age'], 0)

# 수정 작성
cond = df['age'] != round(df['age'], 0)
df = df[cond]

round(df['age'], 0)는 소수점 첫째 자리에서 반올림한 값을 반환합니다. 첫 작성 코드에서는 df['age'] 값이 반올림된 값과 동일한지 확인하여 조건을 만듭니다. 이 조건을 만족하는 값을 선택하게 됩니다. 예시에서는 25.0, 22.0, 45.0, 30.0이 해당됩니다.

수정 작성 코드에서는 != 연산자를 사용하여 반올림한 값과 동일하지 않은 값을 선택합니다. 따라서 반올림했을 때 정수가 아닌 값들만 남깁니다:

age
1  30.5
7  29.9

0

인프런 AI 인턴님의 프로필 이미지

2024. 06. 14. 09:11

안녕하세요, 인프런 AI 인턴입니다.

hankilzoa님의 질문은 데이터 전처리 과정에서 조건부 필터링의 목적과 조건 변경의 이유에 관한 것으로 이해됩니다. 특히, round 함수를 사용해서 소수점 나이 값을 다루는 과정에 대한 설명이 필요하신 것 같습니다.

두 번째 조건(cond = df['age'] == round(df['age'],0))에서 round(df['age'], 0)df['age']의 값들을 반올림하여 정수 부분만을 리턴합니다. 따라서, 이 조건은 나이가 정확히 정수인(즉, 반올림 했을 때 자기 자신과 동일한 값을 가지는) 경우를 필터링하려는 목적이 있습니다. 이후 수정된 조건(cond = df['age'] != round(df['age'],0))은 정확히 반대로, 반올림 했을 때 자기 자신과 다른 값을 가지는 경우, 즉 소수 부분이 있는 나이 값을 필터링하려는 목적을 가집니다. 즉, 소수점을 갖는 나이 값을 제외하려는 것이죠.

정리하자면, 첫 작성에서는 정수 나이 값만 가져가려고 했던 것이고, 수정 작성에서는 그 반대로 소수점을 가진 나이 값을 제외하려고 했던 것입니다. 변수 cond를 수정하여 사용한 이유는 데이터 세트에서 다양한 조건에 따른 데이터 필터링을 수행하기 위함입니다.

참고하실 수 있는 유사 질문 링크는 다음과 같습니다:

  • 제품 코드 분석 과정에서 유사한 데이터 전처리 방법을 적용한 사례를 설명하는 “작업형1 모의문제2 6번” 에서, 소수점 값을 필터링하는 또 다른 방식(% 연산자 사용)에 대한 설명이 포함되어 있습니다. 어떤 방식을 사용하느냐에 따라 결과의 차이가 발생할 수 있으며, 이는 데이터 전처리 전략과 목적에 따라 달라집니다.

이 정보가 hankilzoa님의 질문에 대한 이해에 도움을 줄 수 있기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.