작성
·
14
0
모의문제 1의 문제 3번에서
df['f3']을 replace 함수 사용해서 값 변환해줄 때
굳이 numpy 불러오지 않고
하단처럼 구해도 되나요? 값은 133으로 똑같이 나왔습니다.
#2. f3 컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3 으로 변환한 후 총 합을 정수형으로 출력하시오
# print(df)
df['f3'] = df['f3'].fillna(0)
df['f3'] = df['f3'].replace('silver', 1)
df['f3'] = df['f3'].replace('gold', 2)
df['f3'] = df['f3'].replace('vip', 3)
# print(df)
print(int(sum(df['f3'])))답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 최수영님께서 작업형 1 모의문제 1의 문제 3번에서 numpy 없이 pandas의 replace 함수를 사용한 코딩에 대해 질문하셨네요.
pandas의 replace 함수를 이용하여 f3 컬럼의 값 변환하는 방법은 오히려 범용적인 방식이며, 당연히 사용 가능합니다. numpy를 굳이 불러오지 않아도 pandas의 기능만으로도 충분히 변환 작업을 수행할 수 있습니다. 현재 작성하신 코드처럼 직접적으로 fillna와 replace를 사용해도 문제없습니다.
다만, Python의 버전이나 pandas 라이브러리가 업데이트되면서 미래의 호환성을 고려해 FutureWarning이 발생할 수 있습니다. 현재 해당 경고는 코드의 작동에 영향을 미치지 않지만, 이후 버전에서 변경될 수 있으니 주의가 필요할 수 있습니다.
요점을 간단히 정리하자면:
- numpy 없이도 동일하게 문제를 해결할 수 있습니다.
- 위 코드로 출력한 값이 문제의 요구 사항에 맞고, ‘133’이 정확히 출력된다면 이 방식으로 진행하셔도 전혀 문제가 없습니다.
답변에 도움이 될 유사한 질문들을 아래에 링크하였습니다:
replace 함수 사용에 대한 예시를 확인할 수 있습니다.pandas 의 사용법과 loc 메서드를 사용한 값 변환 방법을 소개하는 예시가 있습니다.저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.