df['f3']=df['f3'].fillna(df['f3'].mode()) df['f3'] = df['f3'].fillna(df['f3'].mode()[0]) 위에는 제가 쓴것이고 아래는 선생님께서 쓰신 것인데 mode 를 쓸때 별말이 없다면 항상 [0] 을 써줘야하나요? 그리고 시험에서 코드에 띄어쓰기를 제대로 하지않을경우 문제가 되나요?..
기출2회 작업형 1 문제 2번 풀이 중 SettingWithCopyWarning가 같이 출력됩니다 문제 2번 주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산) import pandas as pd df = pd.read_csv("members.csv") # print(df.shape) # int(len(df)*0.8) df2= df.iloc[:int(len(df)*0.8),:] # print(df2.shape) std1 = df2["f1"].std() ## 20.574853076621935 print(std1) # print(df2) # print(df2["f1"].median()) # 68.0 df2["f1"] = df2["f1"].fillna(df2["f1"].median()) std2 = df2["f1"].std() ## 17.010788646613268 print(std2) print(std1-std2) 저는 이렇게 풀었고요. 아래처럼 출력되더라고요 20.574853076621935 17.010788646613268 3.564064430008667 <ipython-input-43-d0c995e0379e>:14: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy df2["f1"] = df2["f1"].fillna(df2["f1"].median()) 정답은 풀이 내용 출력값과 일치하는데, SettingWithCopyWarning 가 나서 자꾸 신경이쓰이네요. 실제시험에서 혹시 문제가 생길 수 있을까요...?
문제 1 주어진 데이터셋(members.csv)의 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80 이상인 데이터의 'views' 컬럼 평균값 구하기 처음에는 이렇게 풀었습니다. df["views"].sort_values(ascending=False).head(10) ## 상위 10번째 값은 9690.0 t10 = df["views"].sort_values(ascending=False).iloc[9] ## 9690.0 df["views"] = df["views"].sort_values(ascending=False).reset_index(drop=True) df["views"].iloc[:10] = t10 # df.head(15) cond = df["age"] >= 80 df[cond]["views"].mean() # 4625.380952380952 로 나옴 # # <ipython-input-49-9959c4a1efa3>:13: SettingWithCopyWarning: # # A value is trying to be set on a copy of a slice from a DataFrame # # See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy # # df["views"].iloc[:10] = t10 4625.380952380952 로 나옴 두번째는 이렇게 풀었습니다 df = df.sort_values(["views"], ascending= False).reset_index(drop=True) # df.head(10) top10 = df["views"].iloc[9] ## 9690.0 df["views"].iloc[:10] = top10 # df.head(11) cond = df["age"] > 80 df[cond]["views"].mean() # 5660.318181818182 로 나옴 # <ipython-input-65-22f967dbf31d>:10: SettingWithCopyWarning: # A value is trying to be set on a copy of a slice from a DataFrame # See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy # df["views"].iloc[:10] = top10 5660.318181818182 로 나옴 그런데 풀이 부분을 보니 답이 5674.04347826087 로 나오더라고요... 첫번째는 df의 "views" 칼럼 소팅해서 기존 칼럼에 대입하는 식으로 한 df["views"] = df["views"].sort_values(ascending=False).reset_index(drop=True) 부분이 잘못 된거 같아서 두번째 풀 때 df 전체에서 "views"칼럼 지정해서 소팅하는 아래 처럼 했고 df = df.sort_values(["views"], ascending= False).reset_index(drop=True) 상위 10번째 값 구했고 조건 변수 설정해서 한건데... 왜 풀이랑 결과값이 다를까요....??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 idmax가 잘 안와닿아서요 ㅠㅠ 이렇게 작성해도 정답처리되나요? df['교사1명당학생수'] = df['전체학생수'] / df['교사수'] df = df.sort_values('교사1명당학생수',ascending=False) print(int(df.iloc[0,1]))
안녕하세요. 아래와 같은 코드를 사용하여 날짜 범위를 지정해서 뉴스 기사 크롤링을 해왔습니다. 어제까지만 해도 잘 됬었는데, 날짜 범위를 변경해도 전혀 작동하지 않고, 범위를 어떻게 설정하던 상관없이 (임의로) 오늘자 뉴스만 계속 크롤링 됩니다 ㅠㅠ... 문제가 있어서인지.. 원래 크롤링이 완료되면 startcoding 폴더안에 엑셀파일이 자동으로 저장되었는데, 파일도 나타나지를 않습니다 ㅠㅠ. 어떤게 문제인지 도움을 부탁드립니다. import requests from bs4 import BeautifulSoup import time import pyautogui from openpyxl import Workbook from openpyxl.styles import Alignment # 사용자입력 keyword = pyautogui.prompt("검색어를 입력하세요") lastpage = int(pyautogui.prompt("몇 페이지까지 크롤링 할까요?")) # 엑셀 생성하기 wb = Workbook() # 엑셀 시트 생성하기 ws = wb.create_sheet(keyword) # 열 너비 조절 ws.column_dimensions['A'].width = 60 ws.column_dimensions['B'].width = 60 ws.column_dimensions['C'].width = 120 # 행 번호 row = 1 # 페이지 번호 page_num = 1 for i in range(1, lastpage * 10, 10): print(f"{page_num}페이지 크롤링 중 입니다.==========================") response = requests.get(f"https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query={keyword}&start={i}&ds=2024.6.3&de=2024.6.9") html = response.text # html은 response의 text 안에 위치함 soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") #뉴스 기사 div 10개 추출 # 기사가 10개니까 for문을 써서 하나하나 추출 필요 for article in articles: links = article.select("a.info") # a 태그, info class인 아이들을 가져옴. = 리스트 if len(links) >= 2: # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href를 추출 # 다시 request 날려주기 response = requests.get(url, headers={'User-agent': 'Mozila/5.0'}) html = response.text soup = BeautifulSoup(html, 'html.parser') print(url) # 연예 뉴스 체크 if "entertain" in response.url: title = soup.select_one(".end_tit") content = soup.select_one("#articeBody") elif "sports" in response.url: title = soup.select_one("h4.title") content = soup.select_one("#newsEndContents") date = soup.select_one("div.article_info > span > em") # 본문 내용 안에 불필요한 div, p 삭제 divs = content.select("div") for div in divs: div.decompose() paragraphs = content.select("p") for p in paragraphs: p.decompose() else: title = soup.select_one(".media_end_head_headline") content = soup.select_one("#newsct_article") date = soup.select_one("span.media_end_head_info_datestamp_time._ARTICLE_DATE_TIME") # Add the check here if date is not None: date_text = date.text.strip() else: date_text = "Date not found" print("=======링크======= \n", url) print("=======제목======= \n", title.text.strip()) print("=======본문======= \n", content.text.strip()) print("=======날짜======= \n", date) ws[f'A{row}'] = url # A열에는 URL 기입 ws[f'B{row}'] = title.text.strip() ws[f'C{row}'] = content.text.strip() ws[f'D{row}'] = date_text # 자동 줄바꿈 ws[f'C{row}'].alignment = Alignment(wrap_text=True) row = row + 1 time.sleep(0.3) page_num = page_num + 1 wb.save(f'{keyword}_result.xlsx')
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 저는 마지막에 iloc를 이용하였는데요 가능한지 여쭤봅니다 코드는 아래와 같습니다. df['출동시간'] = pd.to_datetime(df['출동시간']) df['도착시간'] = pd.to_datetime(df['도착시간']) # df.info() df['diff'] = df['도착시간'] - df['출동시간'] df['diff'] = df['diff'].dt.total_seconds()/60 result = df.groupby('소방서').mean() result = result.sort_values('diff',ascending=False) print(int(round(result.iloc[0,2],0)))
https://www.inflearn.com/questions/1287898 여기서 답변에 대한 추가 확인을 위한 연계 질문 내용도 확인 부탁드립니다 https://www.inflearn.com/questions/1287705 pop() 함수는 "train셋에는 존재하고 test셋에는 존재하지 않는 타겟 값 보존을 위해 사용한다" 그리고 피쳐엔지니어링(인코딩, 스케일링) 이후의 컬럼수를 맞추기 위함 이다. 그럼 train, test 2셋 문제( pop 사용해 타겟 분리), x_train.y_train,x_test 3셋 문제(타겟은 y_train에 있으니 pop 사용 불필요) 로 이해하면 되나요?? 3셋의 경우 타겟은 어차피 y_train에 있는 거니까 거기서 끌어오면 되고 지우면 안되는 거니까요
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 검증데이터 분할 할 때 test_size를 나누는 꿀팁있을까요? 0.1? 0.15? 0.2? 머신러닝 모델을 탁 찝어서 이거써라~하고 문제가 나온적도 있나요? 분류/회귀/분류회귀 둘다 사용가능한 모델들을 한번 정리하고 가는게 좋을까요?
강의를 보면서 따라하고 있는데, 2가지 문제점이 있습니다. 우선 첫번째는 아래처럼, 환경 변수 관련 경고가 뜬다는 것입니다. 두번째로는 강의에서는 파이참으로 진행하셨는데, 저는 vs 코드로 진행하여서 sqltools를 다운받아, 드라이브 설치후 진행하였는데 mysql은 잘 연동되었는 postgresql은 연동이 안되더라고요. 앞선 환경변수 문제와 관련이 있는것인지 아니라면 어떻게 해결해야하는것인지 궁금합니다. 오류 코드 docker-compose up -d WARN[0000] The "g" variable is not set. Defaulting to a blank string. WARN[0000] The "z" variable is not set. Defaulting to a blank string. WARN[0000] The "gl8f5tn_" variable is not set. Defaulting to a blank string. WARN[0000] The "g" variable is not set. Defaulting to a blank string. WARN[0000] The "z" variable is not set. Defaulting to a blank string. WARN[0000] The "gl8f5tn_" variable is not set. Defaulting to a blank string. WARN[0000] The "g" variable is not set. Defaulting to a blank string. WARN[0000] The "z" variable is not set. Defaulting to a blank string. WARN[0000] The "gl8f5tn_" variable is not set. Defaulting to a blank string. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
강사님. 완벽히 준비하지 못했지만 월요일에 시험 치르고 왔습니다.ㅎㅎ ㅠㅠ 아마 완벽히 준비를 못해서 불안한 마음에 이 글 남기는게 더 크지 싶습니다^^;;; 이번으로 자격증 취득이 끝이 나야 할텐데요...ㅠㅠ 포토샵 실습을 못해서 학생 때, 잠깐 포토샵 사용한 기술로 사진 크기 줄이는거만 어찌저찌 해서 5mb 이하로 용량 맞춰서 제출했네요.ㅠㅠ(실격 안 당하려고 무진장 애썼다능...) 제가 어떤 시험이든 준비하는 스타일이 합격선 이상으로 준비해서(모든 유형 마스터, 다 완성가능해야함) 시험을 치러야 마음이 편한 인간 부류인데...ㅋㅋㅋ 이 시험은 아무리 강의를 본들, 코드 작성을 따라보고 친들, 이거는 제 스스로가 유형별로 만들어보지 않으면 시험합격하긴 어렵더라구요. 그리고 공부법도 시험친후 파악했구요ㅋㅋㅋ ㅠㅠ 60점만 넘으면 되긴 하는데... 강사님처럼 완벽하게 하진 못했구요.ㅠ 메뉴 마우스 오버 시에 색 바뀌는거랑 메뉴 마우스 올리면 배경이랑 서브메뉴 나오면서 주메뉴하고 서브메뉴 같은 색으로 바뀌게끔 작성하고 나오긴 했는데...ㅠ 감점 있을까요?ㅠㅠ 그리고 나머지 배너, 공지사항 갤러리도 허접하게 했지만 그래도 하고는 나왔습니다.ㅠ 슬라이드는 그래도 하고 나오긴 했어요. 문제는 이미지 용량을 무지 줄여서 좀^^;; 이것도 감점사유가 되나요?ㅠㅠ 암튼...ㅠㅠ 어떤것들이 감점 요인으로 작용할까요?ㅠㅠ 넘 불안해요. 이번으로 끝내고 싶은 마음이 간절하다보니 이렇게 글 남깁니다. 아무튼 이런 좋은 강의 만들어주셔서 감사하고, 좋은 결과 나오면 다시한번 더 글 남기도록 할게요:) 오늘도 좋은 하루 보내세요. ps) 참고로 a2 유형이었고, 아! 그리고 팝업도 하고 나왔습니다! 완벽히 준비하지 못해서 느낌이 애매하다 보니...ㅋ 글 작성하면서는 결과가 나쁘지는 않을 것 같은데... ㅜㅜ 그래도 이게 결과라는게 불확실하다보니까...ㅠ 감점이 어떻게 들어가는지 궁금하네요. 그리고 유형별로 슬라이드 내용을 포토샵으로 하면 안되는 유형도 있더라구요. 아! 마지막으로 이건 건의사항인데요^^;;; 저희 강의에서 요약정리로 슬라이드 css, javascript 사용해서 보여주셨잖아요~ 메뉴도 유형별로 정리하는것도 나쁘지 않을 것 같습니다.
train에서 주구매상품은 42종류고 test에서 주구매상품은 41종류입니다 이것을 확인하고 종류갯수가 달라서 라벨 인코딩을 해준것인가요? 지금까지는 확인하지 않고 object형 라벨 인코딩 해주었는데 train이 '소형가전' 이 하나 더 있는데 따로 어떤 처리를 해준 건가요?
안녕하세요 일코님 페이지의 단을 1단으로 변경하기 위해서, 한글에서 매크로 녹화를 하여 스크립트를 아래와 같이 땄습니다. HAction.GetDefault("MultiColumn", HParameterSet.HColDef.HSet); with (HParameterSet.HColDef) { Type = ColDefType("Newspaper"); CreateItemArray("WidthGap", 1); WidthGap.Item(0) = MiliToHwpUnit(115.6); LineType = HwpLineType("None"); HSet.SetItem("ApplyClass", 868); HSet.SetItem("ApplyTo", 2); } HAction.Execute("MultiColumn", HParameterSet.HColDef.HSet); 이 매크로를 사용하기 위해서 hwp.HAction.GetDefault("MultiColumn", hwp.HParameterSet.HColDef.HSet) hwp.HParameterSet.HColDef.Type = hwp.ColDefType("Newspaper") hwp.HParameterSet.HColDef.CreateItemArray("WidthGap", 1) hwp.HParameterSet.HColDef.WidthGap.Item(0) = hwp.MiliToHwpUnit(115.6) hwp.HParameterSet.HColDef.HSet.SetItem("ApplyClass", 868) hwp.HParameterSet.HColDef.HSet.SetItem("ApplyTo", 2) hwp.HAction.Execute("MultiColumn", hwp.HParameterSet.hwp.HColDef.HSet) 이렇게 코드를 작성했는데요. 문제는 두번째 줄인 hwp.HParameterSet.HColDef.Type 이부분과 네번째 줄 hwp.HParameterSet.HColDef.WidthGap.Item(0) 입니다. 두번째 줄을 실행했을 때 AttributeError: '<win32com.gen_py.HwpObject 1.0 Type Library.HColDef instance at 0x1617095373456>' object has no attribute 'Type' 이러한 에러메시지가 뜨고 네번째 줄은 hwp.HParameterSet.HColDef.WidthGap.Item(0) = hwp.MiliToHwpUnit(115.6) IndentationError: unexpected indent 이렇게 나오는데요.. 뭐가문제일까요? 늘 친절하고 자세하게 답변해주셔서 정말 감사합니다!
예를들어 기출6회 작업형2유형 풀이시에 Heat_Load 를 예측하도록 되어있습니다. 예를들어 train 과 test 컬럼에서 nunique 로 값을 확인하고 실제 row수만큼의 빈도수가 발생하는 Cool_Load 값이 있는데요. 이 컬럼은 삭제하는것이 더 효율적인 머신러닝 성능이 나오더라구요. 하여 전처리시 컬럼을 삭제처리하는 기준을 nunique 로 임의로 판단해도 될지 혹시 강사님은 컬럼삭제의 기준을 어떤식으로 잡는지 궁금합니다. 아니면 그대로 진행하는게 더 나을지 판단이 잘 안서서 질문드려 봅니다.
작업형 2유형을 풀이하게되면 get_dummies 로 한방에 처리하거나 민맥스스케일러, 라벨인코더로 처리하는 경우가 있는데요 둘 중 어느것을 써야 더 효율적일지는 상황에 따라 달라지는건지요? 결과값은 같은건지요 ? 둘다 머신러닝이 납득할 수 있는 숫자로 인코더 되는 역할로 여겨지는데요. get_dummies 만 사용해서 풀이해도 괜찮을지, 혹은 민맥스 스케일러나 라벨인코더를 사용하는게 나을지 궁금합니다. 그리고 스케일러랑 인코더는 세트로 사용해야 하는지, get_dummies 를 혼용하여 사용하기도 하는지 궁금합니다. 결론적으로 minmaxscaler, labelencoder 는 어떤걸 효율적으로 해주고 성능에 영향을 미치는지 큰 차이가 없으면 get_dummies 로 사용해도 되는지 궁금합니다. 또한 get_dummies 는 숫자형과, 오브젝트형이 포함된 전체 테이블을 넣어서 인코딩 하면 되는지도 궁금합니다.