묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[개념부터 실습까지] 추천 시스템 입문편
강의자료 requirements.txt 파일 위치?
구글 코랩이 아니라 개인 환경에서 진행하려고 합니다.필요한 패키지정보가 있는 requirements.txt 파일이 혹시 어디에 있을까요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
concat을 통한 데이터프레임 합치기
# result를 list로 만들고 concat을 통해 DataFrame으로 만듭니다.# concat으로 데이터프레임을 합쳐줄때는 리스트 형태로 각 데이터프레임을 넣어주어야 합니다.pd.concat(result.tolist()) --------------------------------------------------------InvalidIndexError: Reindexing only valid with uniquely valued Index objectsdf_item = pd.concat(item_info, ignore_index=True)도 해보았고, 중복값도 없다고 나오는데 계속 이 부분에서 동일한 에러가 뜹니다.. 어떻게 해결해야 할까요? 이 앞부분까지는 모두 정상출력되었습니다!
-
미해결캐글 설문조사로 데이터 분석 입문하기
hue를 사용할 때
hue를 사용할 때 나타나는 Q2 색상 구분표의 위치는 변경할 수 없나요?
-
미해결캐글 설문조사로 데이터 분석 입문하기
q1_cols를 작성하는 부분에서 궁금한 점이 있습니다.
q1_cols = answer["Q1"].value_counts().sort_index().index.tolist()def show_countplot_by_qno(qno, fsize=(10, 6), order=None): if not order: order = answer[qno].value_counts().index.tolist() plt.figure(figsize=fsize) sns.countplot(data=answer, y=qno, order=order,palette="Blues_r" ).set_title(question[qno]) show_countplot_by_qno("Q1", order=q1_cols)not order 일 때는 tolist() 안해도 출력이 되는데왜 order를 변수로 넣을 때는 tolist() 안하면 에러가 발생하는지 궁금합니다.tolist() 붙여봐도 달라진게 없는것 같은데 어떤 방식인지 모르겠습니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
Reindexing only valid with uniquely valued Index objects 오류 질문입니다.
import timeimport pandas as pddef get_item_info(item_code): item_url = f'https://finance.naver.com/item/main.naver?code={item_code}' tables = pd.read_html(item_url, encoding='cp949') # if len(tables) == 13: # 코넥스를 거르기 위해 추가함 # continue item_info = [] # 빈 리스트 생성 finance_info = tables[3].iloc[:,[0,-2]] finance_info.columns = [0,1] # 합치기 전 칼럼명 일치시켜주기 item_info.append(finance_info) for t in tables: if t.shape[1] == 2: item_info.append(t) df_item = pd.concat(item_info) df_item = df_item.set_index(0).T time.sleep(0.2) # 과부하 막기 위한 지연 조회, 최소 0.1 이상. return df_itemimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt # 한글폰트 위함import datetimeplt.style.use("seaborn-v0_8-talk")font_family = "Malgun Gothic"plt.rc("font", family = font_family)plt.rc("axes", unicode_minus=False)url = 'https://finance.naver.com/sise/sise_group_detail.naver?type=upjong&no=282'table = pd.read_html(url, encoding='cp949')raw = table[2]raw = raw.dropna(how='all').dropna(axis=1, how='all') #추가해서 칼럼도 모두 결측치시 삭제.today = datetime.datetime.today()today = today.strftime('%y%m%d')raw['종목명전처리'] = raw['종목명'].str.replace('*','', regex=True) # 문자치환raw['종목명전처리'] = raw['종목명전처리'].str.strip() # 앞뒤 공백 제거import FinanceDataReader as fdrdf_krx = fdr.StockListing('KRX')# print(df_krx[['Code','Name']])df_item_code_name = df_krx[['Code','Name']]# 위의 종목명_전처리 칼럼과 Name 칼럼을 연결지어서 코드 잡아준다.df_item_code_name.columns = ['종목코드', '종목명전처리']raw = raw.merge(df_item_code_name) # 강의에서 df에 해당함# progress_apply는 map의 사용방법을 되짚어보면서 봐라. 일괄적으로 함수 적용시 사용.# 진행사항을 보려면 progress_apply을 사용하면 된다.from tqdm.auto import tqdmtqdm.pandas()result = raw['종목코드'].progress_apply(get_item_info)# result로 받아서 데이터프레임 형식으로 concat 해줘야해서 tolist() 사용함df_item_info = pd.concat(result.tolist())# print(df_item_info['종목코드']) # 출력해보면 종목코드가 없다. 그래서 넣기# df_item_info['종목코드'] = raw['종목코드'] # 아래의 reset_index를 위해 비활성화함# print(df_item_info['종목코드'])# 위에서 index값이 1로 모두 같아 종목코드가 모두 동일 하므로 아래처럼 인덱스 다시 적용df_item_info = df_item_info.reset_index()df_item_info['종목코드'] = raw['종목코드']# print(df_item_info['종목코드'])# 위와 같이 작업 후 index라는 칼럼을 삭제해 준다.del df_item_info['index']# print(raw.shape)df_info = raw.merge(df_item_info) # 따로 지정 안해줘도 종목코드가 같기에 합쳐진다.# 파일명 만들기file_name_1 = url.split('=')[1].replace('&','_')file_name_2 = url.split('=')[2]file_name = f'{file_name_1}_{file_name_2}.csv'# 저장하기df_info.to_csv(file_name, index=False, encoding='cp949') 위와 같이 코드를 작성하고 실행 했는데요. 제목과 같은 오류가 발생 했습니다. 원인을 찾아 본 결과.코넥스 종목이 포함되어 있어서 칼럼명이 맞지 않아 발생하는 것으로 보입니다. 위의 이미지와 같이 코넥스 종목은 코스닥, 코스피 종목 처럼 table 개수 13개 보다 적게 나오므로 if문으로 table개수가 13개 이하이면 건너띄어 데이터를 받게 하면 오류가 발생하지 않을 것 같은데요. if 문을 함수 어느 위치에 넣으면 좋을지 모르겠어서 질문 드립니다. 어느 위치에 if문을 넣어서 해결하면 좋을까요?
-
미해결5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기
button과 checkbox 조건문과 함수
버튼과 체크박스 모두 조건문을 사용할 때는 바로 아래에 텍스트가 출력되는데, 함수를 사용하면 대시보드 맨 위에 텍스트가 호출되는 것은 왜 그런건가요?(맨 위에 텍스트가 호출되어 출력된 부분이 전부 다 한 칸 씩 밀리게 됨)
-
미해결5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기
annot 수치 표현
age_bin_list = np.arange(10, 80, 10) df['age_bin'] = pd.cut(df['age'], bins = age_bin_list) pivot_df = df.pivot_table( index = 'age_bin', columns = 'region', values = 'charges', aggfunc = 'median' # 각 구간에 해당하는 값을 중간값을 사용하겠다. ) pivot_df # 각각의 값들에 대해 크기를 가늠할 수 있게끔 시각화(주로 색상)하는 방법 # 2D 형식으로 준비된 데이터를 Seaborn heatmap으로 시각화 # annot 인자를 통해 각 셀의 값 표현 가능 fig, ax = plt.subplots() sns.heatmap(pivot_df, ax = ax, annot = True)코드 똑같이 따라했는데 왜 저는 표에 수치가 다 표현이 안되는 건가요?
-
미해결5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기
groupby 경고 질문
groupby를 사용하면 에러는 아니고 경고가 뜹니다. FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.chatGPT:이 경고는 Pandas의 value_counts() 메서드를 사용할 때 발생하는 것으로 보입니다. 이 경고는 현재 버전의 Pandas에서는 observed 매개변수의 기본값이 False이지만, 향후 버전에서는 True로 변경될 것이라는 것을 알려주는 것입니다. 즉, 향후에는 observed=False를 명시적으로 지정하지 않으면 경고가 표시될 것입니다.이러한 경고를 피하려면 value_counts()를 호출할 때 observed=False를 명시적으로 전달하면 됩니다. 예를 들어:import pandas as pd # 예제 데이터프레임 생성 df = pd.DataFrame({'Category': ['A', 'B', 'A', 'C', 'B', 'A']}) # value_counts() 호출 시 observed 매개변수 명시 counts = df['Category'].value_counts(observed=False) print(counts)이렇게 하면 경고가 발생하지 않습니다. 하지만 향후 Pandas 버전에서는 이러한 변경이 기본 동작이 되므로 observed 매개변수를 사용하여 코드를 업데이트하는 것이 좋습니다.-> 근데 이게 무슨 말인지 모르겠습니다! 뭐... 대충 업데이트 할 건데, 오류가 생길 수 있으니 미리 대비를 해라~ 이런 거 같은데 정확히 무슨 뜻인지 모르겠습니다!
-
미해결5분빨리 퇴근하자! 파이썬 데이터 분석, 시각화, 웹 대시보드 제작하기
print()
파이썬에서는 print() 구문이 굉장히 중요하다고 들었는데, 주피터랩에서는 print 없이 df만 써도 표가 나오는 이유는 왜인가요? print(df)를 했을 때는 표가 아니라 글로 나오네요.! 차이가 궁금해서 질문 남깁니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
데이터 비교시 데이터 불일치
오래전에 강의듣다 포기하고 다시 시작하는 중입니다.많은도움 감사합니다. 삼성전자 주식데이터와 금리와의 비교데이터를 만들다 해결이 되지 않아 질문 드립니다.삼성전자stock_code= fdr.DataReader(stock_code, stock_start_data, stock_end_data)stock_code.tail(1) 금리pd.read_csv("한국은행 기준금리 및 여수신금리_23054821.csv", encoding="cp949")이걸합치 날짜가 아닌 3439로 출력이 됩니다. 두게의 데이터를 합쳐 관계를 분석하고 싶은데 3439으로 출력이되면서 그래프가 두게로 표시가됩니다날짜로 변경하여 그래프가 출력되도록 하고싶은데 방법을 모르겠습니다. 만들고 싶은 그래프(아래)
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
dtype={"itemcode": np.object}) 을 dtype={"itemcode": object}) 으로 변경해야 하나요?
예전에 잘 들었다가 최근에 다시 들으면서 실행하니,numpy dtype관련사항이 변경(업데이트)가 있었는지 numpy 1.20이후 변경되었다고 알람,오류메세지가 발생합니다. np.object 부분에서 np. 을 빼고 실행하면 되는데 이렇게 진행하면 될까요? 본 섹션 이외에도 np.object를 string으로 입력받기 위해 사용된 곳이 몇몇 보이는데 해당부분도 동일하게 object(찾아보니 python default type 같습니다만, 정확히 알지 못하겠습니다.) 로 변경해서 사용하면 크게 문제가 없을까요? 시간이 지났지만 자세하고 하나씩 설명해 주셔서 감사합니다.
-
미해결제주 하간디 이신 데이터들 Python으로 몬딱 분석해불게
cleaning함수를 작성해서 데이터를 추리는 이유는 무엇인가요?
제주지역에 해당하는 데이터만 뽑는 과정을 def cleaning(location): if location == '제주': return location else: return np.nan로 하셨는데,raw_log[raw_log['지역(시도)']=='제주'].reset_index(drop=True)로 하면 안되나요? 혹시 함수를 작성하는 경우가 메모리 상에서 좀 더 효율적인건가요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
질문 : for문 풀어쓰기
안녕하세요. 선생님.해당 강의에서 아래와 같이 for문을 한줄에 쓰셨는데요?FAANG=["META", "AMZN", "AAPL", "NFLX", "GOOGL"] faang_list=[fdr.DataReader(code,'2015','2021')["Close"]for code in FAANG] df_faang=pd.concat(faang_list, axis=1)제가 이걸 으로 시작해서 두줄에 풀어썼는데... 에러가 나는데요? 혹시 어느 부분이 잘못되었는지 알려주실수 있으신지요?FAANG=["META", "AMZN", "AAPL", "NFLX", "GOOGL"] for code in FAANG: faang_list=[fdr.DataReader(code,'2015','2021')["Close"]for code in FAANG] df_faang=pd.concat(faang_list, axis=1)
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
파이참에서 Plotly 그래프 실행방법
안녕하세요. 선생님.저는 파이참을 주로 사용중이어서, 파이참으로 실습중입니다.Plotly의 경우 fig.show()를 하면 웹페이지만 나타나고,아무런 실행이 안됩니다.파이참에서 plotly 그래프를 실행하려면 어떻게 해야하나요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
5.1 데이터프레임 병합(merge)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 5.1에서 df_item_code_name 데이터프레임과 raw 데이터프레임을 병합하려 하는데 아래와 같은 화면이 뜹니다.다른 코드는 다 맞게 작성했는데 여기서 왜 오류가 뜰까요 ㅠㅠ on을 작성하지 않고 그냥 merge만 해도MergeError: No common columns to perform merge on.라고 오류가 뜹니다 ㅠㅠ또한, 맨 처음 전처리 과정에서도 이러한 메시지가 뜨는데 혹시 이것이 원인일지 궁금합니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
쥬피터노트북에서 실행파일 만들기
프로그램에 문외한 초보입니다. 선생님의 강의를 듣고자 쥬피터노트북을 설치하였습니다. 거기서 제가 사용하고자 자동화프로그램을 하나 만들었는데, 실행파일이 만들어 지지 않고 계속 아래의 오류메시지가 뜹니다. 근데 아래의 pathlib라는 패키지를 제거하면 이번에는 pip명령이 작동하지 않습니다. 파이참도 설치하여 파일을 옴겨보고 수 없이 프로그램을 재설치하고, chatgpt에 문의도해 보았지만, 문제를 해결하지 못하였습니다. 강의 내용과 좀 다른 질문일수도 있으나, 어디 도움을 구할 곳이 없네요. 쥬피터노트북을 사용하시는 선생님은 실행파일을 어떻게 만드시는지 궁금하여 문의드립니다.The 'pathlib' package is an obsolete backport of a standard library package and is incompatible with PyInstaller. Please remove this package (located in C:\Users\jh_ki\anaconda5\lib\site-packages) using conda remove then try again.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
주피터노트북 확장팩 설치가 안됩니다.
말씀해주신 두가지방법 다 사용해보고, 아래와 같이 구글에 검색한 방법까지 이용해 보았는데도 주피터노트북확장팩이 설치되지 않네요. !pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions !jupyter contrib nbextension install --user !jupyter nbextensions_configurator enable --user
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
날짜 정보
안녕하세요.현재 시점의 fdr 데이터에는 날짜 정보가 없습니다.저는 최종적으로 시계열 데이터를 기준으로 데이터를 분석하는 것을 목표로 하고 있는데요.시계열 데이터를 포함한 fdr데이터는 가져올 수 있는 방법이 없을까요?
-
미해결[개념부터 실습까지] 추천 시스템 입문편
추천시스템 심화 강의는 언제 올라오나요?
안녕하세요.혹시 추천시스템 심화 강의는 언제 올라오는지 알 수 있을까요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
[5.1] pd.concat Reindexing error
강의와 같이 코드를 입력 하였고 아래와 같은InvalidIndexError: Reindexing only valid with uniquely valued Index objects 에러가 납니다.다른분이 질문해주신 글에 답변 처럼 df_item = pd.concat(item_info, ignore_index=True)처리를 하여도 같은 에러가 생깁니다. 해당 문제때문에 강의 진행이 안돼서,, 어떻게 하면 해결할 수 있을까요