묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Airflow 마스터 클래스
db 통신 라이브러리 사용에 궁금한 부분이 있습니다.
안녕하세요 강사님! 강의 잘 보고 있습니다! 다름이 아니라 개인적으로 공부를 하면서 db와의 통신 부분에서 궁금한 부분이 생겨서 질문드립니다! 에어플로우를 공부하면서 mysql 컨테이너도 함께 띄워서 db와의 통신을 공부하고 있고, 현재 db에 접속해서 저장된 데이터를 불러오고, 새로운 데이터를 insert하는 실습을 하고 있습니다. 몇몇 소스 코드를 보면 데이터를 불러오기 위해서 db와 연결하거나, db의 데이터를 조회할 때는 psycopg2나 pymysql과 같은 라이브러리를 사용하고, 수집 후 전처리된 데이터를 저장 할 때는 SQLAlchemy를 사용하는 코드들을 많이 봤는데, 이렇게 작업에 따라서 다른 라이브러리를 사용하는 이유를 알 수 있을까요?? 제가 알기로는 psycopg2나 pymysql, SQLAlchemy 모두 데이터 조회, 저장 기능을 전부 사용가능한걸로 아는데 어떤 이유에서 작업별로 다른 라이브러리를 사용하는지 궁금합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형3 정답 제출할 때
체험환경에서 작업형3 정답을 기록할 때 이전 체험 페이지에서 print한 정답을 확인할 수 없던데, 3개의 소수점 데이터를 외워서 정답에 기록해야 하는건가요? 보통 정답을 기록하는 방식이 있는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형 변수 인코딩 관련 질문입니다
올려주신 코드를 다시 학습하기에는 머리가 너무 복잡해서 ..카테고리가 같더라도 데이터셋을 합친 후 인코딩 실행, 이후 분리해줘도 크게 상관 없죠 ?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
레이블 인코딩 오류가 떳나 안떳다 해요
이 오류가 뜨는데, 코딩에는 문제가 없어서 앞에서 부터 다시 실행하면 오류 안뜨다가 다시 재 실행하면 뜨다가 합니다... 선생님 해주신 그대로 따라하면서 공부하고 있기 때문에 틀린 부분은 없습니다.또한 똑같은 코딩을 실행해도 어떨땐 되고 어떨땐 안되서 난감합니다. 어떻게 해야 할까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 랜덤포레스트 회귀 작업중 워닝 메시지
데이터 결측치 전처리 하는데 이렇게 코드 작업을 했더니 워닝 메시지가 뜨는데시험환경에서도 수정이 필요할까요?# 데이터 전처리 _ 결측치 대체 df['fuel_type'].fillna(df['fuel_type'].mode()[0], inplace = True) df['accident'].fillna(df['accident'].mode()[0], inplace = True) df['clean_title'].fillna(df['clean_title'].mode()[0], inplace = True) [워닝메시지]<ipython-input-37-b2145d16d236>:15: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method. The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy. For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object. df['fuel_type'].fillna(df['fuel_type'].mode()[0], inplace = True)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
predict_proba(test)에서 오류가 나요
혼자 문제를 풀어보고 있는데요 여기서 마지막에 평가할때 pred=rf.predict_proba(test) 에서 계속 오류가 납니다..이렇게 오류가 나는 이유가 뭘까요,,,원래 하던데로 그대로 하고 있는데요ㅠ문제가 roc로 평가하는거라서 predict_proba로 하고 있어요
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출 8회 데이터 drop
저는 데이터를 drop하지 않고 그냥 바로 target = train.pop['타켓컬럼']한뒤 바로 train =pd.get_dummies(train)test =pd.get_dummies(test) 를 바로해주는데,, 꼭 id값을 drop 해야하나요? 안하면,, 결과가 많이 안좋나요?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
sum()함수 질문
안녕하세요.저는 지금까지 실습을 할 때 sum()함수의 괄호 안에 아무것도 넣지 않고 진행을 했습니다.그런데 9회 실기 응시가이드 영상을 보니 괄호 안에 sum(numeric_only=True) 를 넣으라고 하셨는데요.그냥 sum함수를 쓸 때마다 무조건 sum(numeric_only=True)를 넣으면 되는 건가요?아니면 9회 실기 응시가이드 영상에서 보여주신 대로 에러가 발생할 때만 넣어주면 되는 건가요?numeric_only=True를 어떤 상황에서 넣어야 되는건지 정확히 모르겠어서 질문 남깁니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
threadpoolexecutor.submit 실행 시 순차 실행
안녕하세요 py_ad_1_5.py 파일 관련 강의 듣다가 질문 드립니다. threading.Thread로 스레드 직접 두 개 만들어서, start()를 했을 때는 두 작업이 병렬적으로 진행되는 것으로 보였는데요 (First, Second에 해당하는 logging이 번갈아 찍혔습니다)하지만, executor.submit으로 실행시에는 First task에 해당하는 logging이 전부 끝난 다음에 Second task에 해당하는 logging이 시작되는 것을 확인했습니다. submit으로 실행시에는 내부에 join이 있다거나 별도의 동작이 있는 걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
로지스틱회귀모형에서 C()
안녕하세요.작업형3 로지스틱회귀모형 캐글 문제를 보니 Pclass에만 C()처리하고, Gender는 object형임에도 C()처리 하지 않으셨더라구요. C()는 범주가 3개 이상일 때만 해당되고 범주가 2개일 때는 처리하지 않아도 된다고 이해하면 될까요?model = logit("Survived ~ C(Pclass) + Gender + SibSp + Parch", data=df).fit()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
np_exp를 쓸필요가 없나요?
섹션5 모델링 평가(회귀) 파트입니다 # RandomForestRegressor from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) rmse(np.exp(y_val), np.exp(pred)) # 4691.498598226366 베이스라인 # 4722.06683465538 스탠다드스켈러 # 4705.862619729388 민맥스 스켈러 # 4627.730520367604 log
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출2회 2유형 concat
기출 2회는 특이하게, X_train, y_train , X_test 데이터가 있잔하여,, df = pd.concat([x_train, y_train['reached~~']], axis =1)df 로 합치는 이유가 뭔가요? 어차피 df데이터를 따로 활용하는 것도 아니고,, train_test_split 할때도, X_train, y_train 따로 넣어주잖아요,,, 굳이 해야하는 과정인가요?? 분리되어있으면 target = train.pop(['ddd']) 과정을 굳이 안해도 되는 ,, 상황 아닌가요??
-
미해결FastAPI 완벽 가이드
lifespan 적용 관련 문의
안녕하세요 강사님강의 열심히 잘 듣고 있습니다.덕분에 FastAPI에 대한 재미를 더 많이 가지고 있어 감사할 따름입니다. lifespan 적용하신 강의 관련해서 질문이 있습니다.저는 현재 환경을 강의 내용과 다르게 진행하고있습니다. mysql이 아닌 postgresql로 진행하고 있고,postgresql + asyncpg를 이용하여 비동기 처리를 하고있습니다. lifespan 부분을 적용 시 아래 오류가 발생되고있습니다. Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>Traceback (most recent call last): File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\pool\base.py", line 374, in closeconnection self._dialect.do_terminate(connection) File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 1117, in do_terminate dbapi_connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 910, in terminate self._connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1515, in terminate self._abort() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1567, in _abort self._protocol.abort() File "asyncpg\\protocol\\protocol.pyx", line 608, in asyncpg.protocol.protocol.BaseProtocol.abort File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 686, in abort self._force_close(None) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 737, in forceclose self._loop.call_soon(self._call_connection_lost, exc) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 753, in call_soon self._check_closed() File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 515, in checkclosed raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closedThe garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle.sys:1: SAWarning: The garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle. 위와 같은 오류가 발생되고 있습니다. 방법을 찾아보려 gpt에게 문의도 해봤지만 강의 내용과 동일하거나 또는 starting, shutting (구 FastAPI)방식을 알려주고 있습니다. 나름 응용을 해보겠다고 진행한 건데.. 번거로운 질문 드려 죄송합니다.ㅜㅜ 제가 구성한 환경은 이와 같이 진행하였습니다. 참고부탁드리겠습니다. python =="^3.10" fastapi == "0.115.4" uvicorn == "0.32.0" python-multipart == "0.0.17" python-dotenv == "1.0.1" jinja2 == "3.1.4" sqlalchemy == "2.0.36" psycopg == {extras = ["binary", "pool"], version = "^3.2.3"} asyncpg == "^0.30.0" aiofiles == "24.1.0"감사합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에서 train, test 합쳐서 인코딩 후 분리하는 부분 질문입니다.
안녕하세요 강사님! [3-4 Feature engineering.ipynb] 파일 복습 중에 # train, test 합쳐서 인코딩 후 분리하기 cols = list(X_train.columns[X_train.dtypes == object]) print(X_train.shape, X_test.shape) all_df = pd.concat([X_train, X_test]) all_df = pd.get_dummies(all_df[cols]) line = int(X_train.shape[0]) X_train = all_df.iloc[:line,:].copy() X_train X_test = all_df.iloc[line:,:].copy() X_test print(X_train.shape, X_test.shape)이부분에서 '원핫인코딩' 대신 '레이블인코딩'을 하면 어떻게 해야될지 의문점이 생겼습니다.레이블 인코딩시에는 train데이터에는 fit_transform() 을 하고 test 데이터에는 transform() 을 하는 것으로 알고 있는데 X_train 데이터와 X_test 데이터를 합쳤을 때는 fit_transform(), transform() 둘 중 어떤 것을 사용하고나서 분리해야되는지 궁금해서 질문 드립니다!아래는 fit_transform()을 이용해서 구현해본 코드입니다.X_train.shape, X_test.shape df = pd.concat([X_train, X_test]) df.select_dtypes(include='O').columns c_cols = ['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'] df.select_dtypes(exclude='O').columns n_cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week'] from sklearn.preprocessing import LabelEncoder for col in c_cols: le = LabelEncoder() df[col] = le.fit_transform(df[col]) line = len(X_train) X_train = df.iloc[:line,:].copy() X_test = df.iloc[line:,:].copy() print(X_train.shape, X_test.shape)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(신 버전) 모델 학습 질문
코드 1 model.fit(train[cols], target)라고 X_val값에 train[cols]을 대입한 걸로 이해했는데, 코드2검증용 데이터의 train은 라벨인코더가 된 cols가 포함된 train 값이라 그냥 train으로 적은 건가요? 갑자기 헷갈려서 여쭤봅니다 ㅠㅠ,,,..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 sum, len 사용시
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요시험환경에서 sum, len 등 함수 사용시 numeric_only=True 입력하지않아도 결과가 나오는데 무조건 적어야하는걸까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 기출 작업형1 문제3번 minmax 스케일링 , 스탠다드스케일링 질문
8회 기출에서 민맥스 스케일링 풀이에서는 from sklearn.preprocessing import MinMaxScalerscaler=MinMaxScaler()민맥스스케일러를 스케일러로 받아와서 풀이하잖아요 전~에 앞쪽에서 풀이 해주신 코드로 외워서 저는from sklearn.preprocessing import minmax_scale로 바로df['특정컬럼']=minmax_scale(df['특정컬럼'])이렇게 하는게 더 쉬워서 이걸로 외워져서 풀었는데 혹시 스탠다드 스케일링도 저렇게 바꿔 쓰는 import 가 있나요!? ㅜㅜ from sklearn.preprocessing import StandardScalerscaler=Standardscaler()df[' ']=scaler.fit_transform(df[[' ']]) 이렇게 sclaer 로 받아오는 풀이밖에 없나용 ㅠㅠimport 뒤를 살짝씩 바꿔봐도 다 오류가 뜨네요 ㅜ ㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 세션종료
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요코랩에서는 제대로 돌아가는 코드를 시험환경에 넣었더니 실행시간 1분이 넘어 세션이 종료됩니다ㅠ잘못된 부분이 있는지, 혹시 시험시간에도 이런 상황이 생긴다면 해결방안 있을까요?import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/heart/2files/train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p2/heart/2files/test.csv") # train = pd.read_csv("train.csv") # test = pd.read_csv("test.csv") #train.shape, test.shape #((242, 15), (61, 14)) #train.isnull().sum() #결측치 없음 y_train = train['output'] train = train.drop(['id', 'output'], axis=1) test_id = test.pop('id') #train.shape, test.shape #((242, 13), (61, 13)) n_cols = train.select_dtypes(exclude='O').columns c_cols = train.select_dtypes(include='O').columns n_train = train.select_dtypes(exclude='O').copy() c_train = train.select_dtypes(include='O').copy() n_test = test.select_dtypes(exclude='O').copy() c_test = test.select_dtypes(include='O').copy() #스케일러 from sklearn.preprocessing import StandardScaler Scaler = StandardScaler() n_train[n_cols] = Scaler.fit_transform(n_train[n_cols]) n_test[n_cols] = Scaler.transform(n_test[n_cols]) #인코딩 from sklearn.preprocessing import LabelEncoder LE = LabelEncoder() for col in c_cols: c_train[col] = LE.fit_transform(c_train[col]) c_test[col] = LE.transform(c_test[col]) #합치고 검증데이터 분리 X_train = pd.concat([n_train,c_train], axis=1) X_test = pd.concat([n_test,c_test], axis=1) #X_train.shape, X_test.shape #((242, 13), (61, 13)) from sklearn.model_selection import train_test_split x_tr, x_val, y_tr, y_val = train_test_split(X_train, y_train, test_size=0.15, random_state=2024) from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(x_tr,y_tr) y_val_pred = model.predict_proba(x_val) from sklearn.metrics import roc_auc_score score = roc_auc_score(y_val,y_val_pred[:,1]) #print(score) #0.9092261904761905 pred = model.predict_proba(X_test) df = pd.DataFrame({ 'id': test_id, 'output': pred[:,1] }) df.to_csv('010100.csv', index=False)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
9회차 시험환경
9회차부터corr, sum,mean 함수사용하면, (numeric_only=True)라고 적어줘야 한다는 말씀이신가요??sum,mean,corr말고 또 어떤 함수에 적어줘야하나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
라벨인코딩 질문 및 cols 변수 담을 때 질문입니다
안녕하세요 라벨인코딩 시 질문이 있어 글 남깁니다.첫번째질문cols에 select_dtypes()로 컬럼명 담을 때,cols = train.select_dtypes(include='object') cols = train.select_dtypes(include='object').columns for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) ... ...첫 번쩌 cols와 두 번째 cols 중 둘 다 상관 없나요? 아니면 두 번째로 해야 하나요?? 두번째질문그리고 (아직까진 시험에는 나온 적은 없는 걸로 압니다만)train.describe(include='object')이처럼 범주형 변수 유니크 값 확인 시, train과 test의 유니크 값이 다르면 라벨인코딩을 진행하는 것으로 알고 있는데요. 어쩔 땐 concat으로 합치고 후 원핫인코딩 후 다시 분리하라고 하는데, 그냥 유니크 값이 다르면 라벨인코딩 진행을 바로 하면 될까요? 강사님 강의 중 concat 사용하는 부분이 있었던 것 같은데 못 찾고 있어서 질문 남깁니다..