묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
엑셀 파일 생성 중에 cannot be used in worksheets 에러 발생
안녕하세요.강의와는 무관한 질문이지만 본 강의 수강 완료 후 혼자서 프로젝트를 하고 있습니다.현재 구글 리뷰 크롤링 & 스크랩중인데요. 해당 에러가 발생하는 이유를 도무지 찾을 수 가 없어서 질문 드립니다...여러 사이트를 크롤링 해보고 엑셀을 생성 해 보았지만 왜 이런 에러가 발생하는지 로그를 봐도 제대로 표시가 안되니깐 찾기가 힘드네요.구글 리뷰 사이트만 20여개 스크랩 했었고 엑셀도 제대로 생성 되었으니 스크랩 코드 자체에는 문제가 없는거 같습니다. 다만 이 부분에서만 문제가 생깁니다.### 에러 발생 로그[2024-06-12 09:42:59,954] [ERROR utils.py:179] >>Traceback (most recent call last): File "scraper\scrap_crawlers.py", line 1365, in get_review_details File "scraper\utils.py", line 202, in create_xlsx_file File "scraper\utils.py", line 181, in create_xlsx_file File "pandas\util\_decorators.py", line 333, in wrapper File "pandas\core\generic.py", line 2417, in to_excel File "pandas\io\formats\excel.py", line 952, in write File "pandas\io\excel\_openpyxl.py", line 490, in writecells File "openpyxl\cell\cell.py", line 218, in value File "openpyxl\cell\cell.py", line 197, in bindvalue File "openpyxl\cell\cell.py", line 165, in check_stringopenpyxl.utils.exceptions.IllegalCharacterError: 동생한테추천받았는데이렇게편한어플이있다니너무좋아요.현금비율은좋지않지만 신경많이안써도되서괜찮네요~ cannot be used in worksheets.During handling of the above exception, another exception occurred:###cannot be used in worksheets. 이놈이 말썽이네요...아래와 같이 테스트 케이스 만들어서 적용했을 때는 제대로 작동했었습니다.import asyncio from scraper.utils import create_xlsx_file, save_to_xlsx DEFAULT_NAME = "test" async def main(): data = { "message": "동생한테추천받았는데이렇게편한어플이있다니너무좋아요.현금비율은좋지않지만 신경많이안써도되서괜찮네요~" } xlsx_file = await create_xlsx_file( data, file_name=DEFAULT_NAME, sheet_name=DEFAULT_NAME ) await save_to_xlsx(xlsx_file, DEFAULT_NAME) asyncio.run(main()) # utils.py # 엑셀 가로 폭 조정하는 함수 async def calculate_dimension(worksheet: Worksheet) -> None: try: for column_cells in worksheet.iter_cols(): length = max(len(str(cell.value)) for cell in column_cells) adjusted_width = (length + 2) * 1.2 # 조정된 폭 계산 column_letter = get_column_letter(column_cells[0].column) worksheet.column_dimensions[column_letter].width = adjusted_width except Exception as e: message = f"엑셀 폭 조정 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e # 엑셀에 서식 스타일 지정하는 함수 async def cell_pattern_fill( df: pd.DataFrame, worksheet: Worksheet, head_fill_color: str = "4472C4", head_font_color: str = "FFFFFF", body_fill_color: str = "D9E1F2", body_font_color: str = "000000", head_border_color: str = "2E5C99", body_border_color: str = "B4C6E7", fill_type: fills = "solid", ) -> None: try: # Define border styles thin_border_head = Border( left=Side(border_style="thin", color=head_border_color), right=Side(border_style="thin", color=head_border_color), top=Side(border_style="thin", color=head_border_color), bottom=Side(border_style="thin", color=head_border_color), ) thin_border_body = Border( left=Side(border_style="thin", color=body_border_color), right=Side(border_style="thin", color=body_border_color), top=Side(border_style="thin", color=body_border_color), bottom=Side(border_style="thin", color=body_border_color), ) # Set header row style for row in worksheet.iter_rows( min_row=1, max_row=1, min_col=1, max_col=df.shape[1] ): for cell in row: cell.fill = PatternFill( start_color=head_fill_color, end_color=head_fill_color, fill_type=fill_type, ) cell.font = Font(color=head_font_color, bold=True) cell.border = thin_border_head # Set body row style for i, row in enumerate( worksheet.iter_rows( min_row=2, max_row=worksheet.max_row, min_col=1, max_col=df.shape[1] ) ): for cell in row: if i % 2 == 0: cell.fill = PatternFill( start_color=body_fill_color, end_color=body_fill_color, fill_type=fill_type, ) cell.font = Font(color=body_font_color) cell.border = thin_border_body except Exception as e: message = f"엑셀 서식 지정 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e # 본 강의 drf 엑셀 생성 파트를 참고해서 만든 엑셀 생성 함수 async def create_xlsx_file( data: Union[Dict, List], file_name: str = DEFAULT_DIR_NAME, sheet_name: str = DEFAULT_DIR_NAME, ) -> BytesIO: df = pd.json_normalize(data) io = BytesIO() io.name = file_name try: writer = pd.ExcelWriter(io, engine="openpyxl") # noqa df.to_excel( writer, index=False, engine="openpyxl", sheet_name=sheet_name, ) workbook = writer.book worksheet = workbook.active tasks = [ calculate_dimension(worksheet), cell_pattern_fill(df, worksheet), ] await tqdm.gather(*tasks, desc=f" 엑셀 파일 생성중") writer._save() # noqa except Exception as e: message = f"엑셀 생성 중에 예외 발생: '\n{e}" logger = await get_logger() logger.error(message) print(message) raise e io.seek(0) return io # 엑셀 저장 함수 async def save_to_xlsx( xlsx_file: BytesIO, dirname: str = DEFAULT_DIR_NAME, ): output_path = BASE_DIR / "스크랩_결과" / "엑셀" / dirname output_path.mkdir(parents=True, exist_ok=True) now = datetime.datetime.now() timestamp = now.strftime("%Y-%m-%d_%H_%M") filename = f"{xlsx_file.name}_{timestamp}" extension = ".xlsx" file_path = output_path / (filename + extension) try: async with aiofiles.open(file_path, "wb") as f: await f.write(xlsx_file.getvalue()) except Exception as e: message = f"엑셀 파일 저장 중에 예외 발생: '{filename}'\n{e}" logger = await get_logger() logger.error(message) print(message) raise e전체적인 함수는 위와 같으며 엑셀 생성 중에 에러가 발생하였으니 create_xlsx_file 함수 부분에서 해결을 해보아야 할것 같습니다.아니면 혹시 엑셀의 행을 생성 중에 에러가 발생하였을 때 해당 행은 스킵하고 이어서 진행하게 하는 방법이 있을까요?? "raise e"을 발생 시키지 않아도 엑셀 생성 작업 스킵이 되지않고 작업 자체에 문제가 생기네요
-
미해결실무자가 알려주는 CANoe (For CAN 통신)
Canoe 차량에 직접 연결 사용법
안녕하세요 강사님강사님 덕분엔 정말 막막하던 Can 장비 사용법 관련해서 물꼬가 트였고 어쩌면 제가 현실적으로 들을 수 있는 강의중에 최고라고 생각합니다. 자동차 업계에 입사한지 1년이 조금넘은 신입 매니저입니다. 제가 현업에 있으면서 차량(트럭, 버스)에 직접 네트워크 인터페이스 장비를 꽂아서(OBD단자 or CM) CAN BUS를 관측해야하는 경우가 있는데요. 이럴 경우에는 강의중에 말씀하신 DBC파일이 있어야할텐데 해당파일은 차량을 개발한 연구소에 문의를 해서 공유 받아다가 봐야할까요? 그리고 추가 질문으로 CM에 커넥터를 물리고 싶으면 OBD 케이블 외에 별도의 커넥터 케이블이 있나요?
-
미해결데이터 분석 SQL Fundamentals
다양한 window절의 이해 -01, 02
윈도우 절 코드 실습 중입니다.select product_id, product_name, category_id , unit_price, sum(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_sum from products;위 코드는 제공해주신 base 코드입니다. 해당 unit_price_sum을 소수점 둘째자리 까지만 표시하고자 round 함수를 썼는데,round(sum(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following), 2) as unit_price_sum from products; "SQL Error [42883]: 오류: round(real, integer) 이름의 함수가 없음 Hint: 지정된 이름 및 인자 자료형과 일치하는 함수가 없습니다. 명시적 형변환자를 추가해야 할 수도 있습니다."이와 같은 에러가 납니다. 그래서 with절로 해당 unit_price_sum을 temp_01이라는 임시 쿼리에 담아서 아래와 같이 했지만 이래도 위 오류와 동일하게 나오면서 되지 않네요with temp_01 as(select avg(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_avg from products) select round(temp_01.*, 2) from temp_01;select product_id, product_name, category_id, unit_price,avg(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_avg from products; 하는 방법이 있을까요? chat gpt도 서브쿼리로 답을 제공했는데 동일한 문제가 발생했습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
jpql과 1차 캐시
Persist를 실행할 때는 영속성 컨텍스트 1차 캐시에 데이터를 넣지 않는 건가요? 아니면 persist도 1차 캐시에 데이터와 스냅샷 모두 저장하나요?Find를 실행해서 db에서 가져올 때만 가져올 때의 엔티키 상태를 스냅샷을 찍고 엔티티와 함께 1차 캐시에 저장하나요?jpql 실행시에는 1차 캐시를 조회하지 않는 건가요?이 질문의 이유:Find는 1차 캐시에 있는 엔티티를 먼저 조회하는 것으로 알고 있습니다.jpql을 실행할 때 Member 데이터가 없으면 안된다고 설명하고 있습니다그래서 jpql 실행은 1차 캐시를 먼저 찾지 않고 바로 쿼리를 전송하는 것인가? 라는 생각이 들었습니다.jpql이 1차 캐시를 조회하지 않으면 persist 호출 시 1차 캐시에 엔티티를 저장해도 db에서 찾으니까 결국 flush가 발생한다는 생각이 맞아 떨어지는 것 같습니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 ui guide 안보이는 현상
섹션5에서는 코드팩토리님도 ui guide가 안보였는데(위젯 계층간의 연결선) 섹션7부터는 보이네요. 저는 ui guide가 안보이는데 어떻게 해결해야할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 - 데이터 전처리에서 공식같은 게 있을까요??
작업형 2 - 데이터 전처리에서 공식같은 게 있을까요?? 이 의미는 데이터 타입이 object, int/float 섞여있을 때 수치형만 모아서 분석을 한다거나수치형+범주형 같이 모아서 분석을 한다거나 위 두 개의 경우 점수 배점 차이가 없을지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형(작업형2) 데이터
케글에서 다운받았는데 X_train.csv y_train.csv X_test.csv는 없고 Train.csv 파일 하나 있네요. 어떻게 된걸까요?
-
미해결PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
4-8 지표 정의하기 연습문제
안녕하세요, 카일님. 지표 연습문제 한번 작성해봤습니다.도움 많이 받고 있습니다. 감사합니다 (__) 1. 각 메뉴별 CTR (click / imp) 확인 2. 페이지 전환율 확인 (serach_result -> 상품 상세), 페이지 이탈률 확인 3. 검색 필터 버튼 CTR 확인, 검색 필터 지우기 버튼 CTR 확인 4. 배달 서비스에서 가장 중요한 지표? 주문건수!배달 포장 치킨, 한식, 분식 등... 치킨, 한식, 분식 등...늘릴 수 있는 방법? CVR (구매 전환율) 이 가장 높은 segment (배달, 치킨) 을 가장 전면에 배치한다가장 높은 segment의 쿠폰을 제공한다가장 높은 segment 관련 activity를 제공한다 5. 추천 알고리즘의 성능 지표? 구매 전환율왜? 이커머스 알고리즘이기 때문에... 한번 추천 시킨 다음 구매까지 연결되는 것이 최종 목표기존 알고리즘과 신규 알고리즘의 전후비교를 통해서 구매 전환율을 볼 것 같다. 6. 유튜브 duration -> 앱을 오래쓰는 것은 뭔가 이유가 있다신규 구독 건수 -> 콘텐츠 추천에 대한 최상의 만족도를 표시하는 지표라고 생각playrate (playtime / videolength) -> 특정 콘텐츠에 대한 만족도를 전반적으로 볼 수 있다고 생각 7. 가입 전환율이 20%보다 상승했는지 확인, ABT를 통해서 비교
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 고민끝에 정리하여 질문드립니다.
안녕하세요 선생님 저는 작업형 2를 아래와 같은 매커니즘으로 푸려고 합니다.train.info()를 통해서 object 컬럼 확인→ 만약 범주형 데이터가 있다면?→ 라벨인코딩(여기서 cols = train.select_dtypes(include='object').columns 로 해서 푸려고 합니다.)→target = train.pop('타겟컬럼')train = train.drop('ID',axis=1)test_ID = test.pop('ID')→train_test_split을 통해 검증데이터 분리train_test_split(train, target, test_size=0, random_state=0)<여기서 train과 target으로만 쓰기 위해서 위에서 pop과 drop을 진행했습니다.>→모델 예측 및 검증무조건 랜덤포레스트로 진행하고 그 후에 하이퍼파라메터 튜닝으로 성능 비교해볼 생각입니다.→평가지표에 따른 성능 비교→하이퍼파라메터 튜닝 적용해보기→DataFrame 만들기→csv만들기매커니즘에 따른 코드는 다음과 같습니다. train.info() from sklearn.preprocessing import LabelEncodercols = train.select_dtypes(include='object').columnsfor col in cols:le = LabelEncoder()train[col] = le.fit_transform(train[col])test[col] = le.transform(test[col]) target = train.pop('타겟컬럼')train = train.drop('ID',axis=1)test_ID = test.pop('ID') from sklearn.model_selection import train_test_splitX_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0, random_state=0) from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(random_state=0, max_depth = 5, n_estimators = 500)rf.fit(X_tr,y_tr)pred = rf.predict(X_val) from sklearn.metrics import f1_scoreprint(f1_score(y_val, pred, average='macro')) pred = rf.predict(test) submit = pd.DataFrame({'ID' : test_ID,'타겟컬럼' : pred}) submit.to_csv('0000.csv', index=False)여기서 질문은1. pop과 drop을 저 단계에서 해줘도 무방한가요?cols를 라벨 인코딩에서 먼저 정의해주게 되는데 그 이후에 pop과 drop써도 무방한지 여쭤봅니다.2. 물론 어떤 데이터를 주냐에 따라 다르겠지만 위와 같은 과정으로 진행해도 점수획득에 큰 무리 없겠죠?(교차검증등등은 진행하고 싶지 않아서요)3. 범주형 데이터가 하나도 없다면? 그럴일이 없을거 같긴한대 그러면 인코딩단계만 빼고 그대로 진행하면되나용?
-
미해결스프링 시큐리티 OAuth2
OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개 issuer-uri에러
섹션 7OAuth2 로그인 구현 - Oauth 2.0 User 모델 소개(2)진행시 설정시 에러가 납니다uli 클릭하면realm: "oauth2",public_key: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqFd5+xNaJoQzccdweHH4hxMOOirdHcbGx7tAkl7YWFAD0kBpVmpFN3sWaz3T3CLa0zSULmEWuepEkf/T376JKs+opBRb8pfnDSvvq1va4UXhw5j1mMgN8a6kME2TfM4cd2XnnT9huTIJ2+4nTYPTwKhYd+KvgB1ruzUe4ApMw0injfbsyufS17bhGtHYn4Ysq7THWsOAPVQ+FMYd8e1T4tfY1jkQg68UYB43dHST34y0JWkStPowP80qLMbsPvJ4JrOCzSGk08sBvmd6Fo1KD9RAqZyGvQFXEyo1Y5jVcKGCgwin0ijQBCKhRpHmWGlmyamrW6fsgAnAJH+clUdAwQIDAQAB",token-service: "http://localhost:8080/realms/oauth2/protocol/openid-connect",account-service: "http://localhost:8080/realms/oauth2/account",tokens-not-before: 0}이렇게 잘나옵니다. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test'spring: application: name: inf_oauth2 security: oauth2: client: registration: keycloak: authorization-grant-type: authorization_code client-id: oauth2-client-app client-name: oauth2-client-app client-secret: 90GVrQtfYCp1u9cc0VAJNFiY8ZzCyjHD redirect-uri: http://localhost:8081/login/oauth2/code/keycloak client-authentication-method: client_secret_basic scope: openid, profile, email provider: keycloak: issuer-uri: http://localhost:8080/realms/oauth2 authorization-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/auth jwk-set-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/certs token-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/token user-info-uri: http://localhost:8080/realms/oauth2/protocol/openid-connect/userinfo user-name-attribute: preferred_username org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'indexContoller': Unsatisfied dependency expressed through field 'clientRegistrationRepository': Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:787) ~[spring-beans-6.1.6.jar:6.1.6] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessorAutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:767) ~[spring-beans-6.1.6.jar:6.1.6] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "http://localhost:8080/realms/oauth2" at java.base/java.util.HashMap.forEach(HashMap.java:1421) ~[na:na] at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.asClientRegistrations(OAuth2ClientPropertiesMapper.java:64) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientRegistrationRepositoryConfiguration.clientRegistrationRepository(OAuth2ClientRegistrationRepositoryConfiguration.java:49) ~[spring-boot-autoconfigure-3.2.5.jar:3.2.5] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) ~[spring-beans-6.1.6.jar:6.1.6] ... 34 common frames omitted
-
해결됨Flutter 앱 개발 기초
5회차 강의 자료에 5-3 세션이 없습니다
강의 수고 많으셨습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 다중선형회귀분석
원핫인코딩과 drop_first=true 를 통해 다중공선성을 줄이고 유형A가 제거된 상태인데 독립변수에 유형A를 포함하고싶으면 어떻게 해야하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터가 3번 호출되야 되는거 아닌가요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. WAS(여기까지 전파) <- 필터 <- 서블릿 <- 인터셉터 <- 컨트롤러(예외발생) 2. WAS /error-page/500 다시 요청 -> 필터 -> 서블릿 -> 인터셉터 -> 컨트롤러(/error-page/ 500) -> View이렇게 오류가 나면 필터가 적용된다고 써져있는데 그럼 맨처음에 요청이 들어와서 컨트롤러로 갈 때도 필터가 적용되니까 총 3번 REQUEST [4f746f4d-c301-44a3-ab12-793ecca80e91][REQUEST][/error-ex]RESPONSE [4f746f4d-c301-44a3-ab12-793ecca80e91][REQUEST][/error-ex]이부분이 출력이 되야되는거 아닌가요? 1. WAS(여기까지 전파) <- 필터 <- 서블릿 <- 인터셉터 <- 컨트롤러(예외발생)이 과정에서는 필터가 호출이 안되는 건가요?
-
미해결빅데이터 분석기사 시험 실기(Python)
질문입니다 RandomForestClassifier
RandomForestClassifier만 적용하여 앙상블 학습하였을때 ROC_AUC_SCORE가 1.0이 나오는데,, 연습문제 동영상과 같이 0.84.... 가 나오지 않고 1.0이 나오는 이유가 뭘까요 혹시 과적합이라면 오답이라고 할 수 있을까요? 전체 소스 공유합니다. import seaborn as sns import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler from sklearn.ensemble import RandomForestClassifier df = sns.load_dataset('titanic') # 결측치 제거 df['age'] = df['age'].fillna(df.age.mean()) df['deck'] = df.deck.fillna(method='bfill') df['deck'] = df.deck.fillna(method='ffill') df['embarked'] = df.embarked.fillna('S') df['embark_town'] = df.embark_town.fillna('Southampton') df.isna().sum() from sklearn.preprocessing import LabelEncoder obj = ['sex', 'embarked', 'class', 'who', 'adult_male', 'deck', 'embark_town', 'alone'] encoder = LabelEncoder() for i in obj: df[i] = encoder.fit_transform(df[i]) category = ['pclass', 'sex', 'class', 'who', 'adult_male', 'alone'] for i in category: df[i] = df[i].astype('category') df = pd.get_dummies(df) scaler = MinMaxScaler() lst = ['age', 'fare'] scaler.fit(df[lst]) df[lst] = scaler.fit_transform(df[lst]) y = df['survived'] X_train, X_test, y_train, y_test = train_test_split(df, y, test_size=0.3, stratify=y, random_state=23) ml = RandomForestClassifier() ml.fit(X_train, y_train) pred = pd.DataFrame(ml.predict_proba(X_test)) from sklearn.metrics import accuracy_score, roc_auc_score print(roc_auc_score(y_test, pred.iloc[:, 1]))
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
07-01 emotion에서 if문을 다 넣어도 노란색으로 변하질 않습니다.
onChangeContents 함수 부분에 넣었을때 처음엔 버튼이 노란색으로 변했습니다만 이후 onChangeWriter 와 onChangeTItle 부분까지 넣은 후 버튼의 색이 변하지 않습니다.if문을 다 지우고 setIsActive(true)만 넣었을때는 작동이 됩니다..
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방향 연관관계의 필요성, 단방향 연관관계 시 fetch join
[질문 내용]우선 단방향 연관관계를 적용하고 꼭 필요한 경우에 양방향 연관관계를 사용하라는 내용을 적용해보다가 이해가 안되는 부분이 생겨서 질문남깁니다. Team과 Member로 양방향 연관관계를 적용한다고 생각해보면 다른 질문의 답변을 봤을 때 Team을 조회할 때 Member가 거의 같이 조회가 되는 경우와 fetch join으로 조회 시 양방향 연관관계를 사용하여 더 편리하게 조회할 때 사용한다는 답변을 봤습니다. (제대로 이해한 것인지는 모르겠습니다.) 그래서 테스트를 해봤습니다.@Test void 멤버목록과_함께_팀조회() { Team team = new Team("teamA"); entityManager.persist(team); Member member = new Member("m1", 0, team); Member member2 = new Member("m2", 0, team); entityManager.persist(member); entityManager.persist(member2); entityManager.flush(); entityManager.clear(); System.out.println("====테스트 1 양방향 연관관계==="); Team findTeam = teamJpaRepository.findById(team.getId()).get(); List<Member> members = findTeam.getMembers(); for (Member member1 : members) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 2 fetch join 양방향 연관관계 사용=="); Team findTeam2 = teamRepository.findTeamWithMembersById(team.getId()).get(); List<Member> members2 = findTeam2.getMembers(); for (Member member1 : members2) { System.out.println("member1 = " + member1.getUsername()); } entityManager.flush(); entityManager.clear(); System.out.println("===테스트 3 fetch join 그냥 엔티티 사용=="); Team findTeam3 = teamRepository.findTeamWithMemberById(team.getId()).get(); List<Member> members3 = findTeam3.getMembers(); for (Member member1 : members3) { System.out.println("member1 = " + member1.getUsername()); } } public interface TeamRepository extends JpaRepository<Team, Long> { @Query("select t from Team t join fetch t.members") Optional<Team> findTeamWithMembersById(Long id); @Query("select t from Team t join fetch Member m") Optional<Team> findTeamWithMemberById(Long id); }테스트 1의 경우 두개의 쿼리가 나가는 것을 확인했습니다. selectt1_0.team_id,t1_0.create_by,t1_0.created_date,t1_0.last_modified_by,t1_0.last_modified_date,t1_0.namefromteam t1_0wheret1_0.team_id=? selectm1_0.team_id,m1_0.member_id,m1_0.age,m1_0.create_by,m1_0.created_date,m1_0.last_modified_by,m1_0.last_modified_date,m1_0.usernamefrommember m1_0wherem1_0.team_id=? 테스트 2의 경우 한개의 쿼리만 나가는 것을 확인했습니다.selectt1_0.team_id,t1_0.create_by,t1_0.created_date,t1_0.last_modified_by,t1_0.last_modified_date,m1_0.team_id,m1_0.member_id,m1_0.age,m1_0.create_by,m1_0.created_date,m1_0.last_modified_by,m1_0.last_modified_date,m1_0.username,t1_0.namefromteam t1_0joinmember m1_0on t1_0.team_id=m1_0.team_id 테스트 3의 경우 오류가 났습니다. 위의 테스트 1(getMembers로 접근), 테스트2(fetch join)의 경우 쿼리의 개수로 봤을 때 테스트 2를 사용하는 게 더 좋은 것 같은데 맞을까요?테스트 3은 단방향인 경우 팀과 멤버를 같이 조회를 어떻게 해야되나요?양방향 연관관계가 필요한 경우가 뭔가요?원래 api 설계할 때 team, member를 각각 조회하는 경우만 만들었었는데, team과 member가 같이 조회되는 api를 만드는 경우도 있나요? (team/{id}, member/{id} 와 같은 경우만 만들어봤습니다.)
-
미해결
2유형 에러코드 질문드립니다.
2유형 공지사항 시험 예시 내용인데, import pandas as pdimport numpy as nptrain = pd.read_csv("data/customer_train.csv")test = pd.read_csv("data/customer_test.csv")#print(train.isnull().sum())train = train.fillna(0) #결측치를 0으로 채우기test = test.fillna(0)#print(test.isnull().sum())#print(train.isnull().sum())train = train.drop(['회원ID'], axis=1)y = train.pop('성별')cust_id = test.pop('회원ID')#범주형변수 원핫인코딩(get_dummies)train = pd.get_dummies(train)test = pd.get_dummies(test)#print(train.info())#수치형변수 스케일링(MinMaxScaler)from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()scaler.fit(train)scaler.fit(test)#모델 생성 (분류 - 랜포classifier)from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier()rf.fit(train,y)#모델 예측pred = rf.predict(test) -모델 생성까지는 에러 코드가 없었는데, 모델 예측에서 이러한 에러코드가 나옵니다..ㅜㅜㅜㅜ> Makefile:6: recipe for target 'py3_run' failedmake: *** [py3_run] Error 1Traceback (most recent call last): File "/goorm/Main.out", line 38, in <module> pred = rf.predict(test) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 630, in predict proba = self.predict_proba(X) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 674, in predict_proba X = self._validate_X_predict(X) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 422, in validateX_predict return self.estimators_[0]._validate_X_predict(X, check_input=True) File "/usr/local/lib/python3.9/dist-packages/sklearn/tree/_classes.py", line 407, in validateX_predict X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", File "/usr/local/lib/python3.9/dist-packages/sklearn/base.py", line 437, in validatedata self._check_n_features(X, reset=reset) File "/usr/local/lib/python3.9/dist-packages/sklearn/base.py", line 365, in checkn_features raise ValueError(ValueError: X has 72 features, but DecisionTreeClassifier is expecting 73 features as input.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
문제 1-1 데이터 분할 관련 질문입니다.
데이터셋 분할 시에 iloc안쓰고 그냥df[:210] 이렇게 나눠도 상관 없나요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
인코딩
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요범주형 데이터가 있으면 필수로 인코딩을 해줘야하는걸로 알고 있는데요이때 무조건 라벨인코딩으로 진행하려고 하는데 문제없는 사항인가요?
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
모바일환경에서 동영상이 안나옵니다
안녕하세요제목 그대로 모바일 크롬 환경에서 동영상이 잘 나오지 않습니다.증상은 동영상 재생 버튼을 누르면 계속 버퍼링 상태이네요. 와이파이 환경은 좋습니다.확인 및 조치 부탁드려요.감사합니다.