
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.1
1주차 숙제로 GPT에 네이버 재무제표를 요청해서 받은 코드는 아래와 같습니다.
import requests
from bs4 import BeautifulSoup
import pandas as pd
def get_naver_financial_statement():
# 네이버 종목 코드
stock_code = '035420'
# 네이버 금융의 재무제표 페이지 URL
url = f"https://finance.naver.com/item/main.nhn?code={stock_code}"
# 페이지 요청
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 재무제표 테이블 찾기 (맨 처음 테이블 선택)
table = soup.find('table', {'class': 'tb_type1 tb_num'})
# 테이블에서 컬럼명과 데이터 추출
columns = [th.get_text().strip() for th in table.select('thead th')]
data = [[td.get_text().strip() for td in row.select('td')] for row in table.select('tbody tr')]
# 데이터프레임 생성
df = pd.DataFrame(data, columns=columns)
return df
# 네이버 재무제표 데이터프레임 얻기
naver_df = get_naver_financial_statement()
# 출력
print(naver_df)
작성한 코드 및 에러 메세지
오류 발생 시, 작성한 코드 전체와 에러AssertionError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pandas/core/internals/construction.py in _finalize_columns_and_data(content, columns, dtype)
968 try:
--> 969 columns = _validate_or_indexify_columns(contents, columns)
970 except AssertionError as err:
6 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/internals/construction.py in _validate_or_indexify_columns(content, columns)
1016 # caller's responsibility to check for this...
-> 1017 raise AssertionError(
1018 f"{len(columns)} columns passed, passed data had "
AssertionError: 6 columns passed, passed data had 5 columns
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last)
<ipython-input-7-60748cd38e0c> in <cell line: 29>()
27
28 # 네이버 재무제표 데이터프레임 얻기
---> 29 naver_df = get_naver_financial_statement()
30
31 # 출력
<ipython-input-7-60748cd38e0c> in get_naver_financial_statement()
22
23 # 데이터프레임 생성
---> 24 df = pd.DataFrame(data, columns=columns)
25
26 return df
/usr/local/lib/python3.10/dist-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy)
744 if columns is not None:
745 columns = ensure_index(columns)
--> 746 arrays, columns, index = nested_data_to_arrays(
747 # error: Argument 3 to "nested_data_to_arrays" has incompatible
748 # type "Optional[Collection[Any]]"; expected "Optional[Index]"
/usr/local/lib/python3.10/dist-packages/pandas/core/internals/construction.py in nested_data_to_arrays(data, columns, index, dtype)
508 columns = ensure_index(data[0]._fields)
509
--> 510 arrays, columns = to_arrays(data, columns, dtype=dtype)
511 columns = ensure_index(columns)
512
/usr/local/lib/python3.10/dist-packages/pandas/core/internals/construction.py in to_arrays(data, columns, dtype)
873 arr = _list_to_arrays(data)
874
--> 875 content, columns = _finalize_columns_and_data(arr, columns, dtype)
876 return content, columns
877
/usr/local/lib/python3.10/dist-packages/pandas/core/internals/construction.py in _finalize_columns_and_data(content, columns, dtype)
970 except AssertionError as err:
971 # GH#26429 do not raise user-facing AssertionError
--> 972 raise ValueError(err) from err
973
974 if len(contents) and contents[0].dtype == np.object_:
ValueError: 6 columns passed, passed data had 5 columns 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
