묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! FastAPI 입문
(실습) ORM 적용 - HTTP Response 처리
from typing import List from fastapi import FastAPI, Body, HTTPException, Depends from pydantic import BaseModel from sqlalchemy.orm import Session from database.orm import ToDo from database.connection import get_db from database.repository import get_todos from schema.response import ListToDoResponse, ToDoSchema app = FastAPI() @app.get("/") def heath_check_handler(): return {"ping": "pong"} todo_data = { 1: { "id": 1, "contents": "실전! FastAPI 섹션 0 수강", "is_done": True, }, 2: { "id": 2, "contents": "실전! FastAPI 섹션 1 수강", "is_done": False, }, 3: { "id": 3, "contents": "실전! FastAPI 섹션 2 수강", "is_done": False, }, } @app.get("/todos", status_code=200) def get_todos_handler( order: str | None = None, session: Session = Depends(get_db), ) -> ListToDoResponse: todos: List[ToDo] = get_todos(session=session) if order and order == "DESC": return ListToDoResponse( todos=[ToDoSchema.from_orm(todo) for todo in todos[::-1]] ) return ListToDoResponse( todos=[ToDoSchema.from_orm(todo) for todo in todos] ) @app.get("/todos/{todo_id}", status_code=200) def get_todo_handler(todo_id: int): todo = todo_data.get(todo_id) if todo: return todo raise HTTPException(status_code=404, detail="ToDo Not Found") class CreateToDoRequest(BaseModel): id: int contents: str is_done: bool @app.post("/todos", status_code=201) def create_todo_handler(request: CreateToDoRequest): todo_data[request.id] = request.dict() return todo_data[request.id] @app.patch("/todos/{todo_id}", status_code=200) def update_todo_handler( todo_id: int, is_done: bool = Body(..., embed=True) ): todo = todo_data.get(todo_id) if todo: todo["is_done"] = is_done return todo raise HTTPException(status_code=404, detail="ToDo Not Found") @app.delete("/todos/{todo_id}") def delete_todo_handler(todo_id: int): todo = todo_data.pop(todo_id, None) if todo: return raise HTTPException(status_code=404, detail="ToDo Not Found") from typing import List from pydantic import BaseModel class ToDoSchema(BaseModel): id: int contents: str is_done: bool class Config: orm_mode = True class ListToDoResponse(BaseModel): todos: List[ToDoSchema] from typing import List from sqlalchemy import select from sqlalchemy.orm import Session from database.orm import ToDo def get_todos(session: Session) -> List[ToDo]: return list(session.scalars(select(ToDo))) from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker DATABASE_URL = "mysql+pymysql://root:todos@127.0.0.1:3306/todos" engine = create_engine(DATABASE_URL, echo=True) SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_db(): session = SessionFactory() try: yield session finally: session.close() from sqlalchemy import Boolean, Column, Integer, String from sqlalchemy.orm import declarative_base Base = declarative_base() class ToDo(Base): __tablename__ = 'todo' id = Column(Integer, primary_key=True, index=True) contents = Column(String(256), nullable=False) is_done = Column(Boolean, nullable=False) def __repr__(self): return f"ToDo(id={self.id}, contents={self.contents}, is_done={self.is_done})" 에러가 납니다. 파이썬 콘솔 <input>:1: PydanticDeprecatedSince20: The from_orm method is deprecated; from schema.response import ToDoSchemafrom datagbase.orm import ToDoTraceback (most recent call last):File "C:\Program Files\JetBrains\PyCharm 2023.3.2\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcodecoro = func()^^^^^^File "<input>", line 1, in <module>File "C:\Program Files\JetBrains\PyCharm 2023.3.2\plugins\python\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_importmodule = self._system_import(name, args, *kwargs)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ModuleNotFoundError: No module named 'datagbase'from database.orm import ToDotodo = ToDo(id=100, contents="test", is_done=True)ToDoSchema.from_orm(todo)<input>:1: PydanticDeprecatedSince20: The from_orm method is deprecated; set model_config['from_attributes']=True and use model_validate instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.5/migration/Traceback (most recent call last):File "C:\Program Files\JetBrains\PyCharm 2023.3.2\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcodecoro = func()^^^^^^File "<input>", line 1, in <module>File "C:\Users\manag\pyProject\todos\Lib\site-packages\typing_extensions.py", line 2499, in wrapperreturn arg(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\pydantic\main.py", line 1126, in from_ormraise PydanticUserError(pydantic.errors.PydanticUserError: You must set the config attribute from_attributes=True to use from_orm http://localhost:8000/docs#/default/get_todos_handler_todos_get접속시 터미널INFO: 127.0.0.1:56312 - "GET /docs HTTP/1.1" 200 OKINFO: 127.0.0.1:56312 - "GET /openapi.json HTTP/1.1" 200 OK2024-01-23 16:06:15,108 INFO sqlalchemy.engine.Engine BEGIN (implicit)2024-01-23 16:06:15,109 INFO sqlalchemy.engine.Engine SELECT todo.id, todo.contents, todo.is_doneFROM todo2024-01-23 16:06:15,109 INFO sqlalchemy.engine.Engine [cached since 826.5s ago] {}2024-01-23 16:06:15,113 INFO sqlalchemy.engine.Engine ROLLBACKINFO: 127.0.0.1:56312 - "GET /todos HTTP/1.1" 500 Internal Server ErrorERROR: Exception in ASGI applicationTraceback (most recent call last):File "C:\Users\manag\pyProject\todos\Lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 404, in run_asgiresult = await app( # type: ignore[func-returns-value]^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 84, in callreturn await self.app(scope, receive, send)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\fastapi\applications.py", line 1054, in callawait super().__call__(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\applications.py", line 123, in callawait self.middleware_stack(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\middleware\errors.py", line 186, in callraise excFile "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\middleware\errors.py", line 164, in callawait self.app(scope, receive, _send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\middleware\exceptions.py", line 62, in callawait wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\_exception_handler.py", line 64, in wrapped_appraise excFile "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_appawait app(scope, receive, sender)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\routing.py", line 762, in callawait self.middleware_stack(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\routing.py", line 782, in appawait route.handle(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\routing.py", line 297, in handleawait self.app(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\routing.py", line 77, in appawait wrap_app_handling_exceptions(app, request)(scope, receive, send)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\_exception_handler.py", line 64, in wrapped_appraise excFile "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_appawait app(scope, receive, sender)File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\routing.py", line 72, in appresponse = await func(request)^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\fastapi\routing.py", line 299, in appraise eFile "C:\Users\manag\pyProject\todos\Lib\site-packages\fastapi\routing.py", line 294, in appraw_response = await run_endpoint_function(^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\fastapi\routing.py", line 193, in run_endpoint_functionreturn await run_in_threadpool(dependant.call, **values)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\starlette\concurrency.py", line 40, in run_in_threadpoolreturn await anyio.to_thread.run_sync(func, *args)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\anyio\to_thread.py", line 56, in run_syncreturn await get_async_backend().run_sync_in_worker_thread(^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\anyio\_backends\_asyncio.py", line 2134, in run_sync_in_worker_threadreturn await future^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\anyio\_backends\_asyncio.py", line 851, in runresult = context.run(func, *args)^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\src\main.py", line 48, in get_todos_handlertodos=[ToDoSchema.from_orm(todo) for todo in todos]^^^^^^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\typing_extensions.py", line 2499, in wrapperreturn arg(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^File "C:\Users\manag\pyProject\todos\Lib\site-packages\pydantic\main.py", line 1126, in from_ormraise PydanticUserError(pydantic.errors.PydanticUserError: You must set the config attribute from_attributes=True to use from_orm
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
피미 인디언 당뇨병 예측 관련 질문
교수님 안녕하십니까교수님의 수업을 정말 즐기면서 듣고있는 AI빅데이터 전공 대학생입니다.교수님의 강의 피마 인디언 당뇨병 예측 편을 보고 여태 배운 것을 백분 활용하여 제 방식대로 따로 모델을 구현을 해보았는데요. 먼저 임신횟수와 Outcome을 제외한 나머지 column들에 있는 0 값들은 모두 결측치로 판단하고 평균 값으로 대체하였습니다.RandomForestClassifier 알고리즘을 사용하고 GridSearchCV 함수를 통해 best estimator를 추출였습니다.정밀도와 재현율이 동시에 높으면 좋지만 재현율이 증가하면 정밀도가 하락하는 현상(trade-off) 때문에 둘 중 하나를 선택해야 했고 이 피마 인디언 당뇨병 데이터 셋 같은 경우 병의 발견 목적으로 모델을 제작한다고 했을 때 실제로 당뇨병인데 모델이 당뇨병이 아니라고 예측하는 것이 치명적이라고 생각하여 정밀도 보다는 재현율을 중점적으로 보았습니다.그리하여 precision_recall_curve 함수를 통해 최적의 재현율과 F1_score얻은 threshold 값을 추출하였습니다. 제가 얻은 값은오차 행렬 [[72 28] [ 4 50]] 정확도: 79.22% , 정밀도: 64.10% , 재현율 92.59%, F1_Score: 75.76%임계값: 0.32212471005503873입니다. 오차 행렬을 보았을때도 한쪽에 치우쳐있는 불균형도 없다고 판단하였고 정밀도와 재현율 f1_score도 괜찮게 나왔다고 판단했습니다.임계값을 0.32212471005503873로 주었을 때 roc_auc_score는 0.82296이라는 1에 꽤나 근접한 수치를 얻었습니다.질문1:이런식으로 모델을 찾아가는 방식이 옳은 방식인지 궁금합니다.질문2:제가 선택한 모델을 사용한다고 한다면 매번 RandomClassifier로 fit한 model을 Binarizer을 통해서 threshold 값을 매번 지정해주어야 하는건가요? 애초에 처음 모델을 fit할 때 임계값을 제가 부여는 못하는 것일가요?
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
502 Bad Gateway
2024/01/15 15:08:24 [error] 22#22: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.64.1, server: , request: "GET / HTTP/1.1", upstream: "http://172.18.0.2:8000/", host: "192.168.64.7" 위와 같은 오류가 발생하는데 문제가 무엇인지 모르겠습니다.
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
mariadb 접근권한 오류
File "/usr/local/lib/python3.9/site-packages/MySQLdb/connections.py", line 193, in initsuper().__init__(*args, **kwargs2)django.db.utils.OperationalError: (1044, "Access denied for user 'django'@'%' to database 'django'") mariadb 컨테이너를 실행 후,django 컨테이너를 실행 시 위와 같은 오류가 발생합니다.찾아보니 django 에 대한 권한이 없어서 그렇다고 하는데,해결방법이 있을까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
5장 회귀 실습 2:캐글경연 주택가격 예측-Advanced Regression Techniques - 01 질문 있습니다😊
선생님 안녕하세요! 5장 회귀 실습 2:캐글경연 주택가격 예측-Advanced Regression Techniques - 01 을 듣다가 타겟 값인 Price를 로그 변환하여 정규 분포 형태로 변환하고, 피처들 중 숫자형 컬럼의 Null 값 데이터 처리 부분 코드를 다음과 같이 썼습니다. 그런데 결과가 사진과 같이 float64가 포함된 형태로 나왔습니다. 제가 어떤 부분에서 잘못한 건지, 그리고 어떻게 해야 선생님과 같은 결과가 나올 수 있나요?ㅎㅎ# SalePrice 로그 변환original_SalePrice = house_df['SalePrice']house_df['SalePrice'] = np.log1p(house_df['SalePrice'])# Null이 너무 많은 컬럼들과 불필요한 컬럼 삭제house_df.drop(['Id', 'PoolQC', 'MiscFeature', 'Alley', 'Fence', 'FireplaceQu'], axis=1, inplace=True)# Drop하지 않는 숫자형 Null 컬럼들은 평균 값으로 대체num_columns = house_df.dtypes[house_df.dtypes !='object'].index.to_list()house_df[num_columns].fillna(house_df[num_columns].mean(), inplace=True)# Null 값이 있는 피처명과 타입을 추출null_column_count = house_df.isnull().sum()[house_df.isnull().sum() > 0]print('## Null 피처의 Type :\n', house_df.dtypes[null_column_count.index])
-
미해결파이썬으로 영화 예매 오픈 알리미 만들기
python-telegram-bot 2021년 20 버전 이후
python-telegram-bot 20 버전부터는 비동기 프로그래밍이 적용되어 강의와는 다른 코드가 필요합니다. https://github.com/python-telegram-bot/python-telegram-bot/wiki/Introduction-to-the-API 위 깃허브 python-telegram-bot 공식 위키 페이지로 가시면 필수적이고 간단한 용례들을 보실 수 있습니다.
-
미해결파이썬으로 영화 예매 오픈 알리미 만들기
현재 23.01.07 기준으로 하시는 분 계시면 보세요.
해당 강의에서 작성하는 코드를 그대로 실행하면 되지 않습니다.현재 iframe 태그가 자바스크립트를 통해 실행되기 때문에 페이지가 로드된 후에도 자바스크립트가 실행될 시간이 필요합니다.강의처럼 iframe의 주소만 따와서 실행시키는 것이 아닌 전체 주소를 가져와 iframe 태그로 전환시켜주고 자바스크립트 실행까지 기다려 주는 방식으로 진행하셔야 합니다. https://velog.io/@os_js/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81%EC%9D%B4%EC%9A%A9-%ED%85%94%EB%A0%88%EA%B7%B8%EB%9E%A8-%EC%B1%97%EB%B4%87저도 강의중 안됐던 내용이 있었기에 그에 대한 내용을 블로그에 올려두었습니다.강의 진행대로 따라하다가 안되는 부분만 정리하여 올렸기 때문에 강의내용과 비교하시면서 보셔야 될 듯 합니다.
-
미해결프로젝트를 통해 배우는 파이썬 프로그램
강의 소스코드는 어디서 찾을 수 있을까요?
안녕하세요. 강의 소스코드는 어디서 찾을 수 있을까요? 말씀하신 사이트에 로그인했는데, 그다음이 없네요. 확인 부탁드립니다.
-
미해결초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
CH02_ 가상환경 활성화 안되는 이유
가상환경 활성화 코드를 입력해도 앞에 (ch02_env)가 안나오는데 이래도 괜찮은건가요?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
주피터 익스텐션 다운로드 문제 질문입니다!
Jupyter command jupyter-contrib not found.지금 이 오류가 떠서 설치가 안되고 있는데요. 어떻게 해결해야 할까요??제가 봤을땐, pip install jupyter_contrib_nbextensions 이 부분은 실행이 되는데jupyter contrib nbextension 이 부분에서 오류가 생기는 것 같습니다. ㅠㅠ
-
미해결Airflow 마스터 클래스
스케줄링과 관련된 질문입니다.
섹션3, 첫번째 강의에서 스케줄에 관한 질문입니다. 강의에서, start_date = 2023.1.1schedule = "30 6 * * *"next_run = 2023 03 18 6:30그리고 현재 날짜는 2023 03 19 인것으로 봤는데, next_run이 현재날짜보다 뒤에 있으니 pause -> unpause 를 하게되면 자동실행이 안되어야 하는거 아닌가요? 강의에서는 자동으로 실행되는것으로 봐서요. 감사합니다.
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
IIS 500.19에러
구글로 먼저 배포 해보고 잘 되서 IIS로 배포해보려고 하는데다음과 같이 나옵니다handler도 Allow로 바꿨고web.config는 그대로 복사하고 경로도 확인했는데 뭐가 문제일까요...ㅠㅜㅠ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁 드립니다~
안녕하세요, 강의자료 부탁 드려도 될까요?fbyksong@gmail.com입니다.
-
미해결실전 프로젝트로 배우는 데이터 앱 만들기 with Python & Streamlit
오류 메세지
안녕하세요~~ 루비네 코딩 입니다 ^^최근 앱을 런칭할 때 다음과 같은 오류가 발생하고 있습니다.ModuleNotFoundError: No module named 'altair.vegalite.v4'이런경우, 다음과 같이 altair 패키지의 버전을 바꾸어 설치해 주세요 ^^감사합니다~pip uninstall altairpip install altair==4.2.2
-
미해결
RS232c Serial 통신 관련 질문이 있습니다.
안녕하세요연구실에서 자체적으로 실험기기와 컴퓨터랑 통신을 진행하는 중인데, 하나가 해결이 안 되어서 너무 답답해서 고수님들께 자문을 구하려고 합니다. Rs232 rtu 모드를 지원한다고 한 OS-20 overhead stirrer과 통신을 진행 중 입니다. 이 친구의 통신 규격과 방식은 아래 그림 3개와 같습니다. 이중 stirrer control 부분을 제가 참조해서 저 command를 hex 방식으로 입력하였는데 도무지 안되는 겁니다. 그런데 웃긴게 이 회사에서 지원하는 공식 통신프로그램을 사용하면 작동이 잘 되더군요. Instruction overview에서 나온 규칙은 다음과 같습니다.Command 구조는 Prefix Instruction_code Data_frame Checksum로 되어 있고입력의 prefix는 0xfe로 시작하며 responce는 0xfd로 시작합니다.모든 바이트 사이에는 50ms delay가 존재해야하며 Dataframe은 큰 수 자리부터 전송합니다.ex) 1000rpm을 data frame에 입력하려고 할 시 Hex값이 03E8이니까 앞에 두 자리를 0x03에 해당하고 뒤에 두 자리를 0xE8로 해당시킵니다.Null은 0x00입니다.Checksum 방식은 0xfe,0xfd인 prefix를 제외하고 나머지를 전부 더한 값으로 0xnn 이런식으로 표현됩니다. 신기하게도 16진수의 2자리를 넘어가도 뒤에 2 자리만 붙이면 된다고 하더군요. ex) 0xfe 0xb1 0x03 0xe8 0x00 checksum인데 0xfe를 제외하고 다 더하면 019c이지만 0x9c만 입력하면 되는 형식입니다. 그래서 이 규칙대로 코드를 짜서 통신을 해 보았는데, 아무리 해도 안되어서 너무 답답합니다. 심지어 제가 잘못했는지 확인하려고 시리얼 통신 sniffer을 사용하여서 공식 프로그램에서는 어떻게 통신이 되나 뜯어보았습니다. 결과는 아래 사진과 같습니다.제가 python으로 작성한 코드는 아래와 같습니다. import serial import time ser = serial.Serial( port='COM7', # Update with your actual port baudrate=9600, parity=serial.PARITY_NONE, # No parity stopbits=serial.STOPBITS_ONE, # 1 stop bit bytesize=serial.EIGHTBITS # 8 data bits ) def send_hex_string(hex_string): # Convert the hex string to bytes byte_data = bytes.fromhex(hex_string) # Send the bytes over the serial port ser.write(byte_data) def send_hex_string_with_delay(hex_string, delay_ms=50): for i in range(0, len(hex_string), 2): # Extract each pair of characters and convert to bytes hex_pair = hex_string[i:i + 2] byte_data = bytes.fromhex(hex_pair) # Send the bytes over the serial port ser.write(byte_data) # Wait for the specified delay time.sleep(delay_ms / 1000.0) command = 'feb103e8009c' send_hex_string_with_delay(command) ser.close() 또한 파이썬에서의 결과를 시리얼 전송으로 보면 다음과 같습니다.입력은 제대로 되는데 기기에는 반응이 제대로 나오지 않네요... 제가 잘못하고 빠뜨린 점이 있을까요? 읽어주셔서 정말 감사드립니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 부탁드립니다!
안녕하세요. 강의 자료 요청합니다.elel3418@daum.net 감사합니다!
-
미해결Airflow 마스터 클래스
'[섹션 8. Connection & Hook] Postgres 컨테이너 올리기' 강의에서 sudo docker compose up 명령어가 제대로 실행되지 않습니다.
이전까지는 도커 서비스를 잘 수행이 됐었습니다. 이번 강의에서 docker-compose.yaml파일을 수정 후 서비스를 내렸다가 다시 올리려고 하니 사진처럼 해당 로그까지만 찍힌 후에 더 이상 진행이 되지 않고 있습니다. 계속 기다려봐도 상태가 그대로인 것을 보아하니 어딘가 문제가 생긴 것 같습니다.yaml파일은 올려주신 파일과 비교해봤을 때 오타나 다른 문제는 없는 것 같습니다. 원래의 docker-compose.yaml로 교체하면 잘 실행이 되는 상태입니다. 뭐가 문제일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
wilcoxon 검정에 대한 질문입니다!
이전 단일 표본 검정에서 정규성 검증을 진행할 때 willcoxon 코드를 알려주실 때stats.wilcoxon(df[’무게‘]-120, alternative=’less’)와 같이 알려주셨는데 이번 대응표본 검정에서 정규성 검증을 진행할 때 willcoxon는 stats.wilcoxon(df[‘after’] ,df[‘before’], alternative = ‘greater’)와 같이 알려주셨습니다.또한 강의에서도 after와 before의 값을 빼서 넣은 값인 df['diff']를 그대로 사용해도 된다고 말씀하셨습니다.그래서 아래 사진과 같이 임의로 df[‘after’] - df[‘before’]를 넣어서 실행해봤는데 결과값이 똑같이 나왔습니다. 그럼 단일 표본 검정에서 알려주신대로 df[’무게‘]-120와 같이 df[‘after’] - df[‘before’]로 생각하고 넣어줘도 무방한 것인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4-2 type 1 4 번 문제
형별로 합하기 위해 df = df.T 를 쓰셨는데 print(sum(df.sum(axis=1) > 3000)) 를 쓰면 안 될까요 ?해보니 답은 동일 했습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
logit 이나 ols 사용할때 앞에 C( )를 붙이는 이유?
ANOVA를 배울때는 ols 사용할때 독립변수 앞에 C()를 붙이는것이 분산분석은 범주형 분석이기에 앞에 C를 붙인다고 생각했는데요~로지스틱 회귀분석은 독립변수가 수치형, 종속변수가 이산/명목형으로 알고있는데.. Gender 앞에 C를 붙이는 이유가 있을가요? 오히려 Gender은 수치로 바꿔줘야할것 같은데.. 혹시 C 의 의미가 수치형->범주형, 범주형->수치형으로 양쪽 모두 바꿔주는 역할인건지 궁금합니다.