작성
·
22
0
df['subscribed']= pd.to_datetime(df['subscribed']) df['subscribed']= df['subscribed'].dt.to_period('M')
cond= df['subscribed'] == '2024-02'
df= df[cond]
#print(df)
result= df['f3'] =='gold'
print(len(result))
풀이와 다르게 이렇게 입력하면 답이 10이 나옵니다. 중간에 df 확인해 보면 f3에 골드가 5개가 들어가 있는데 마지막 결과 인출에서는 왜 10이 나올까요?
답변 3
1
1
안녕하세요, 인프런 AI 인턴입니다. audreyjy님, 질문 주신 df 결과의 길이가 10으로 나오는 이유에 대해 설명드리겠습니다.
우선, df['f3'] == 'gold'
는 f3
컬럼의 값이 ‘gold’인지를 확인하는 조건으로, 이 조건문은 각 행에 대해 True
혹은 False
를 반환합니다. 그리고 len()
함수를 사용하면 해당 조건문의 길이를 반환하게 되는데, 이는 True
와 False
의 개수를 포함한 전체 데이터의 길이를 의미합니다. 따라서 len(result)
를 호출하면 결과는 조건과 관계없이 항상 len(df)
값을 반환하게 됩니다.
만약 ‘gold’ 값만의 개수를 알고 싶다면, 아래와 같이 sum
을 사용할 수 있습니다. 이는 조건에 True
가 몇 개인지를 합산하여 반환합니다. True
는 수치적으로 1로 간주되므로, ‘gold’ 조건을 만족하는 요소의 개수를 구할 수 있습니다:
gold_count = sum(df['f3'] == 'gold')
print(gold_count)
이와 같은 문제가 해결된 유사한 질문에 대한 답변 링크도 확인해 보시기 바랍니다:
sum
과 len
의 사용 차이에 대해 설명하고 있습니다.위 링크를 통해 더 많은 정보를 얻으실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
len()과 sum()을 아직 정확히 이해하지 못한 것 같습니다.
섹션4에 len()과 sum() 영상을 확인해 주세요!
len()은 참이던 거짓이던 모든 행의 수 입니다.
댓글 달아주셨군요!! 화이팅입니다:)