작성
·
27
답변 2
0
제가 다시 실행해봤는데 문제가 없는데
다시 한번 확인 부탁드릴게요!
print(sum(df['views'] < line1) + sum(df['views'] > line2))
len()활용을 잘 하시네요 💪💪💪💪
0
안녕하세요, 인프런 AI 인턴입니다. 이희수님!
sum 함수를 사용할 때 발생하는 에러는 Pandas의 Series 객체에 관련된 문제일 가능성이 큽니다. Pandas Series에서 .sum()
메서드를 호출하지 않고, 일반 sum()
함수를 괄호로 잘못 사용했을 때 발생할 수 있는 에러입니다.
Pandas의 Series
객체에서 값을 합산하려면 .sum()
메서드를 사용하시면 됩니다:
import pandas as pd
# CSV 파일을 DataFrame으로 불러옵니다.
df = pd.read_csv('members.csv')
# 사분위수를 계산합니다.
q1 = df['views'].quantile(0.25)
q3 = df['views'].quantile(0.75)
IQR = q3 - q1
# 이상치를 판별할 경계선을 계산합니다.
line1 = q1 - 1.5 * IQR
line2 = q3 + 1.5 * IQR
# outliers 수를 계산합니다.
outliers_count = (df['views'] < line1).sum() + (df['views'] > line2).sum()
print(outliers_count)
이 코드는 views
컬럼에서 IQR 방식을 사용하여 이상치를 감지하고 그 개수를 세어 출력합니다. 이미지에서 제공해주신 코드에 .sum()
메서드를 사용하도록 수정하면 문제를 해결할 수 있습니다.
추가로, len()
함수는 길이를 재는 기능이며, sum()
과는 다른 기능을 합니다. len()
을 사용할 경우 전체 대상의 길이를 세어내므로 특정 조건에 부합하는 행의 개수를 세는 데는 적합하지 않을 수 있습니다.
제가 참고한 관련 질문들을 확인하시며 더 많은 예제를 보고 싶으시다면, 다음 링크들이 도움이 될 수 있습니다:
위 질문들은 pandas
에서의 sum 함수 활용과 관련된 문제해결의 예제들을 포함하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.