해결된 질문
작성
·
173
·
수정됨
0
이렇게 풀어봤는데, 이렇게 해도 괜찮은가요?
그리고 문제 2번에서
print(sum(df["f3"] == "gold"))
대신
print(len(df["f3"] == "gold"))
으로 하면 안되는 이유가 잘 이해가 안되서 문의드립니다.
len()도 데이터 수 구하는 함수 아닌가요?
df["f3"] == "gold" 라는 조건을 만족하는 데이터의 수를 구하는데 사용할 수 있을 줄 알았는데, sum() 사용했을 때와 값이 다르게 나와서요. 이 상황에서 두 함수 간 정확히 어떤 차이가 있는지 궁금합니다.
좋은 강의 감사합니다~
답변 1
0
sum()활용법
df["f3"] == "gold"의 결과는 True와 False이다.
True는 1이고 False는 0이다.
sum()하게 되면 True의 개수와 같다.
len()활용법
df["f3"] == "gold" 가 참인 데이터프레임이 필요함
cond = (df["f3"] == "gold")
len(df[cond])으로 사용가능하다.
한 줄로 다시 작성하면 len(df[(df["f3"] == "gold")이렇게 df로 한번 더 감싸줘야 한다.
활용방법에서 차이가 있습니다 🙂
답변 감사합니다~~
sum() 은 조건이 참인 것들을 합산하여 개수를 나타낼 수 있고,
len()은 기본적으론 단순히 데이터의 길이(인덱스의 개수)를 출력하는거라 len()으로 조건이 참인 것을 구하려면, 우선 어떤 조건이 참이 되는지에 대한 변수를 반드시 사전에 설정하고 그 변수를 대입할 때만 실행이 되는 것이라고 이해하면 되나요..??
그리고 2문제도 그림파일에 올린 저렇게 풀어도 괜찮은가요?
전 넘파이 안 불러오고
df["f3"] = df["f3"].fillna(0)
df["f3"] = df["f3"].replace("silver",1).replace("gold",2).replace("vip",3)
이렇게 작성했거든요
정수형 합 구하는건 메소드 .sum() 사용한
말고,
내장함수 sum() 를 쓴
int(sum(df["f3"]))
로 입력했는데, 둘다 가능한거 같은데, 확인차 글 남깁니다