해결된 질문
작성
·
148
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
문제2의 세번째 조건이 "컬럼의 'gold' 값을 가진 데이터 수를 출력하세요!"라고 나와 있습니다.
강의에서는 아래 코드와 같이 sum으로 풀이해주셨는데 , sum 대신 len으로 작성해도 동일한 결과가 나옵니다.
sum이나 len 어떤 걸 사용해도 상관없는 건지 궁금합니다. 데이터 수이기 때문에 len이 더 정확한 답일까요?
print(sum(df[df['f3'] == 'gold']))
답변 2
0
sum()
데이터 프레임에서 조건에 따른 수를 알고 싶다 -> sum()을 사용하는 것이 좋습니다.
cond = df['a'] > 10
sum(df[cond]) 의 결과는 True(1)의 총합을 계산합니다.
전체 데이터 10개 중 10보다 큰 값이 5개라면 5가 출력됩니다.
len()
데이터프레임의 행의 수를 알고 싶다면 len()을 사용합니다.
cond = df['a'] > 10
len(df[cond]) 을 사용하면 False도 한 행이므로 모두 계산되어 나옵니다.
전체 데이터 10개가 출력됩니다.
count()
count()는 결측치를 제외하고 카운트합니다.
따라서 결측치 제거 후 len() 적용한 것과 동일합니다.
혹시 count() 사용하는 풀이를 혹시 제가 한 적 있을까요??
자칫 잘못 카운트할 가능성이 있어 입문자에게는 결측치 제거 후 len()을 사용하는 것을 추천합니다.
수치형 데이터: sum(), len(), count() 모두 사용 가능
범주형 데이터: len(), count()는 사용 가능하지만 sum()은 의미 없음
0
안녕하세요, 인프런 AI 인턴입니다. jongho님, 질문 주신 sum
과 len
의 사용에 대해 도움이 될 만한 정보를 찾았습니다.
먼저, sum
함수와 len
함수는 비슷한 상황에서 사용되어 비슷해 보일 수 있지만, 사용 목적과 방식에 차이가 있습니다. sum
함수는 주로 조건을 만족하는 항목들의 개수를 구할 때 사용되며, 조건의 결과(True/False)에 따라 합산을 진행합니다. 각 True는 1로, False는 0으로 계산하여 합산합니다. 반면, len
함수는 어떤 컬렉션(리스트, 데이터프레임 등)의 길이, 즉 요소의 총 개수를 구하는 데 사용됩니다.
여러분의 경우와 유사한 질문에 대한 답변이 여기에 있습니다:
sum
과 len
사용법의 차이를 설명해주고 있습니다. 기본적으로 sum(df["f3"] == "gold")
의 사용은 df["f3"] == "gold"
조건을 만족하는 항목들이 True로 반환되며, 이 True값들(1로 간주)을 모두 합산하여 조건을 만족하는 항목의 개수를 나타냅니다. 반면, len(df[df["f3"] == "gold"])
의 경우는 조건을 만족하는 행들로 구성된 새로운 데이터프레임을 생성하고, 이 데이터프레임의 길이(행의 수)를 반환합니다. 두 방식 모두 조건을 만족하는 데이터의 개수를 구하는 데 사용될 수 있으나, 실행 과정에서의 처리 방식에 차이가 있습니다.특별히, 작성하신 코드의 컨텍스트를 기준으로 sum
을 사용할 경우 오류가 발생할 수 있습니다. sum
함수는 Boolean 값을 합산할 때 주로 사용되기 때문에 sum(df[df['f3'] == 'gold'])
는 예상치 못한 결과를 초래할 수 있습니다. 아마 예제 코드에서 의도하신 바는 sum
과 len
을 혼동하신 것으로 보이며, 해당 조건에서 데이터의 수를 구하기 위해서는 len(df[df['f3'] == 'gold'])
가 적절한 코드가 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
sum()만 사용해서 풀이해주셨습니다!
답변 감사합니다.