인프런 커뮤니티 질문&답변

jasony1님의 프로필 이미지
jasony1

작성한 질문수

파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기

concat tolist 사용 오류 문의

작성

·

216

1

안녕하세요
5.1 업종테마주수집 과정을 좀 변형해서 네이버금융의 "시가총액" 메뉴의
종목을 여러페이지 크롤링했습니다. 첫페이지 50개 만 가져오면 괜찮은데
이후 2번째 페이지부터 추가해서 가져오면 아래 코드 실행시 오류가 납니다
df_item_info = pd.concat(result.tolist())
TypeError: first argument must be an iterable of pandas objects, you passed an object of type "Series"
페이지 크롤링하는 부분은 아래와 같습니다
raw = pd.DataFrame()
for page in range(1,3):
url = f"https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page={page}"
table = pd.read_html(url, encoding="cp949")
oneraw = table[1]
oneraw = oneraw.dropna(how="all").dropna(axis=1, how="all")
raw = raw.append(oneraw)
time.sleep(1)
머가 문제인지 잘 모르겠습니다
확인 부탁드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

0

박조은님의 프로필 이미지
박조은
지식공유자

안녕하세요.

아래와 같이 변경해 보세요.

그리고 코드를 올려주실 때 줄바꿈과 인덴트를 맞춰 질문해 주시고

스크린샷도 함께 올려주시면 답변에 도움이 됩니다.

append 는 파이썬 리스트에 사용하는 함수입니다.

그리고 append  결과는 변수에 다시 할당하지 않아도 됩니다.

raw = []

for page in range(1,3): 

    url = f"https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page={page}" 

    table = pd.read_html(url, encoding="cp949") 

    oneraw = table[1] 

    oneraw = oneraw.dropna(how="all").dropna(axis=1, how="all") 

    raw.append(oneraw) 

    time.sleep(1)

jasony1님의 프로필 이미지
jasony1
질문자

답변 감사합니다 ^^

알려주신 방법으로 하니까 오류가 나는데요

그리고 첨에 문의 드린 오류 부분 화면은 아래와 같습니다

확인 부탁드립니다 

박조은님의 프로필 이미지
박조은
지식공유자

raw 에 들어가 있는 값은 리스트 이기 때문에 shape를 사용할 수 없습니다.

shape는 판다스의 데이터프레임과 시리즈에 사용하는 기능이에요.

길이를 알고 싶다면 len(raw)를 사용하세요.

jasony1님의 프로필 이미지
jasony1

작성한 질문수

질문하기