선생님 안녕하세요. 며칠전에 drop() 함수에서도 동일한 질문을 드렸는데요, 수업을 계속 듣다보니 다른 함수에서도 <ipython-input-25-4fa8e3ad4b16>:5: FutureWarning: The default value of numeric_only in DataFrame.corr is deprecated. In a future version, it will default to False. Select only valid columns or specify the value of numeric_only to silence this warning. X_train.corr() 이런 FutureWarning 메시지가 자주 뜨고 있습니다. (위는 3-2 강의에서 X_train.corr() 코드 실행 시 나타나는 메시지입니다.) 시험을 칠 때도 경고 메시지만 뜨고 오류없이 실행 되는 게 맞을까요?
작업형 1 모의고사 2에서 질문 1 0이하의 이상치 나이를 제거하기 위해서 df=df.drop(cond1) 이렇게 하면 안되는 건가요ㅠㅠ... 오류가 나더라구요 판린이 이상 질문 드립니다 수업시간엔 아래처럼 사용하셨씁니다! cond1=df['age']<=0 df=df[~cond] 이렇게 사용하셧었는데요!! 제가 drop함수만 기억이 나더라구요!!ㅠㅠ 질문 2. df['age'] == round( df['age'], 0) 이 0의자리? 일의자리인가요?? 이 부분을 제가 모르는 것 같은데 설명 부탁 드립니다!! round가 반올림함수라고 알려주셨는데요. 그런데 36.3은 어떻게 거르나 싶더라구요. 36.3의 경우에 df['age'] == round( df['age'], 0) 이면... 소수 첫째짜리에서 정수까지만 나오도록 돼있는데 그러면 36.3은 못 거르는 게 아닌가 싶은데 걸러져있더라구용... 이게 어찌된 것인지 설명 부탁 드립니다!! -판린이 드림-
선생님 2회 기출유형 강의를 듣다가 헷갈리는 부분이 있어서 질문드립니다. df[:10]과 df.iloc[:10]이 어떻게 다른게 헷갈립니다ㅠㅠ 또한 df.iloc[4:7]이면 4부터 6까지 3개의 데이터 값을 가져오는 거이고 df.iloc[:10]이면 0-9까지 총 10개의 데이터의 값을 가져오는 건가요?
안녕하세요 선생님 제가 작업형 1 모의문제 1 강의 시청 전에 두 가지 방법으로 풀이를 하였는데, 선생님 풀이 방법과 조금 다르지만, 답은 완전히 다릅니다 ㅠㅜㅜㅠㅜㅠ 혹시 몰라서 로데이터 CSV도 데이터전처리 요청사항대로 해서 풀었는데, 제 풀이 두 가지와 같은 답안인 3077이 나옵니다..(엑셀에서 데이터 전처리 이후 quantile 함수로 추출함) 혹시, 선생님의 풀이와 저의 풀이에 차이점이나 잘못된 점을 알려주 실 수 있을까요? < 1. 첫 번째 풀이 > < 2. 두 번째 풀이 > < 3. 선생님 풀이 >
안녕하세요 선생님 문제를 풀다가 궁금한게 생겨서 질문드립니다. 1. .주어진 전체 기간의 각 나라별 골득점수 상위 5개 국가와 그 득점수를 데이터프레임형태로 출력하라 df.groupby('Country')['Goals'].sum().sort_values(ascending = False).head(5).to_frame() 2. Iris 데이터 세트에서 species 변수 값별로 petal_length 상위 10개행의 평균값을 구한 후 , 평균 값의 합을 계산해라 최종값은 소수점 이하 반올림 df.sort_values(['species', 'petal_length'], ascending = False).groupby('species').head(10).groupby('species')['petal_length'].mean().sum() 1번에서는 나라별 골득점수를 그룹바이 한 다음에 상위 5개를 출력했는데 2번에서는 먼저 내림차순으로 정렬을 하고 그룹바이를 하더라고요 1번처럼 이런식으로 해야 하는거 아닌가요? 둘의 차이점이 궁금합니다!! df.groupby('species')['petal_length'].mean().sort_values(ascending = False).head(5)
<ipython-input-13-53df70509493>:2: FutureWarning: The default value of numeric_only in DataFrameGroupBy.mean is deprecated. In a future version, numeric_only will default to False. Either specify numeric_only or select only columns which should be valid for the function. df.groupby('원두').mean() 잘못된 부분이 있는지 알려주시면 감사하겠습니다.
안녕하세요 시험환경살펴보기 강의 보면서 따라하고있는데요 글자 지우려고 할때 백스페이스가 바로 안먹고 마우스로 지우려는 글자를 드래그한다음 눌러야 지워지는데 원래이런가요? 작업형1 풀이하실때 from sklearn.preprocessing import minmax_scale minmax_scale(df['qsec']) 이렇게 푸셧는데요 제가 알던것과 코드가 달라서 질문합니다 아래와 같이 작성했더니 에러가 뜨는데 이렇게하면 안되나요? from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() df['qsec'] = scaler.fit _transform(df['qsec']) 시험환경 작업형 2 문제가 아래와같은데, 강의영상과는 달리 남자일 확률을 구해야 하는지 여자일 확률을 구해야하는지 설명이 없네요 문제가 잘못된건가요? 아니면 이렇게 나오면 어떻게 풀어야하나요?
다른 모델로 했을때는 강사님께서 하신 결과와 비슷한 값으로 출력되는데 랜덤 포레스트로 했을때는 좀 값이 크게 다른거 같아서 왜 그런지 궁금합니다. r2 : 0.22820072226799604 mae : 66.05190013633266 mse : 37780.327072499626 rmse : 194.37162105744662 rmsle : 0.4927575606003991 mape : 45.697109330094285 이렇게 나오는데 뭐가 문제일까요? 코드의 오류인줄 알고 강의자료를 복붙해서 실행해도 위의 값이 나옵니다.
문제2 주어진 데이터에서 결측치가 30%이상 되는 컬럼을 찾고 해당 컬럼에 결측치가 있는 데이터(행)를 삭제 함. 그리고 30% 미만, 20% 이상인 결측치가 있는 컬럼은 최빈값으로 값을 대체하고 'f3'컬럼의 'gold' 값을 가진 데이터 수를 출력하세요! 문제가 지금 이런 형식인데요. 제가 궁금한 것은, 결측치의 크기를 판단하는 판단하는 위치입니다. 'f1' 칼럼을 dropna 하게되면 다른 행들도 영향을 받아서 결측치가 들어있는 행도 같이 날라가게 되는데 각 칼럼별 결측치의 크기를 판단하는 위치는 모든 작업을 수행하기 전에 하는 것이 맞을까요? <제가 푼 코드> # your code import pandas as pd import numpy as np pd.set_option('display.max_columns', None) # file load file_path = "/content/drive/MyDrive/Colab Notebooks/빅데이터 분석기사/1. 작업형1/" df = pd.read_csv(file_path+"members.csv") check = [] # find na over 30% for col in list(df.columns): check.append(df[col].isnull().sum()/len(df)) for col, check in zip(list(df.columns), check): if check >= 0.3: df = df.dropna(subset=col) elif check < 0.3 and check >= 0.2: df[col] = df[col].fillna(df[col].mode()[0]) print(len(df[df['f3'] == 'gold'])) <강의에서 알려준 코드> # 풀이 import pandas as pd df = pd.read_csv("members.csv") # print(df.isnull().sum()) # print(len(df) * 0.3) # f1 삭제 # f3 최빈값 # print(df.shape) df = df.dropna(subset=['f1']) # print(df.shape) # print(df.head()) df['f3'] = df['f3'].fillna(df['f3'].mode()[0]) # print(df.head()) # df.isnull().sum() print(sum(df['f3'] == 'gold'))