inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

iloc vs loc [작업형 1 모의문제 1번]

35

Jeehoon Kim

작성한 질문수 2

0

문제

내 해답

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv")
df

df['f1'] = df['f1'].fillna(df['f1'].median()) #결측치 중앙값으로 대체
df = df.dropna() #나머지 결측치가 있는 데이터(행)을 모두 제거
df = df.loc[:int(len(df) * 0.7)] #앞에서부터 70% 데이터. loc로 함 (인덱스 명 0부터 시작하는거 df로 확인)
ans1 = df['views'].quantile(.75) - df['views'].quantile(.25) #views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값
print(ans1)

결과 : 3662

해답

import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv")
# df = pd.read_csv("members.csv")

df['f1'] = df['f1'].fillna(df['f1'].median())
# print(df.isnull().sum())

# print(df.shape)
df = df.dropna()
# print(df.shape)

df = df[:int(len(df) * 0.7)]

r1 = df['views'].quantile(.75)
r2 = df['views'].quantile(.25)

print(r1 - r2)

내 코드에서 문제가 된 부분

df = df.loc[:int(len(df) * 0.7)] 

loc 대신 iloc 를 쓰면 정답과 같은 답이 나오는걸 확인했는데

문제는 해설처럼 %70 번째를 포함하려면 loc 를 쓰는게 맞는거 아닌가 해서요

iloc 는 iloc[:n] 을 하면 n-1번 인덱스 까지만 포함하는거니까요

 

 

 

 

답변 0

초보자 공부 방법

1

48

1

신규가입 할인혜택

1

22

1

질문 1

1

54

1

L2_P12_priority_data_controller 코드 리뷰 부탁드립니다.

1

47

2