파이썬 데이터 분석 질문입니다.

파이썬 데이터 분석 질문입니다.

작성일 2023.03.07댓글 2건
    게시물 수정 , 삭제는 로그인 필요

제가 봤을 때는 문제가 없는데
왜인지 맨밑  # (5) 데이터 프레임 추가
    if len(cap_detail_df)==0:
        cap_detail_df = temp_df
    else:
        cap_detail_df = cap_detail_df.append(temp_df, ignore_index=True) 

이 부분을 포함하면 py:76: FutureWarning: The frame.append method is deprecated. and will be removed from pandas in a  future version. Use pandas.concat instead가 뜨고 response쪽에서 오류가 난다네요... ㅜㅠ
제발 도와주세요

----------------코드 시작----------
from bs4 import BeautifulSoup
import requests
import pandas as pd

# http://www.neweracapkorea.com/shop/shopbrand.html?xcode=031&mcode=002&type=Y&gf_ref=Yz1vU0FlS3M=
base_url="http://www.neweracapkorea.com"
cap_total_url="/shop/shopbrand.html?xcode=031&mcode=002&type=Y&gf_ref=Yz1vU0FlS3M="
#get html
response = requests.get(base_url+cap_total_url)
#BeautifulSoup를 사용하여 데이터 파싱
soup = BeautifulSoup(response.content, "lxml")
soup
#첫번째 항목만 출력해보자
cap_info = soup.findAll('div', {'class': 'tb-center'})
cap_info[0]
#url
cap_url = cap_info[0].find('a').get('href')
print(cap_url)
#상품명
name = cap_info[0].find('li', {'class': 'dsc'}).text
print(name)
#가격
price = cap_info[0].find('li', {'class': 'price'}).text
print(price)

#위의 방법을 사용하여, cap_info에 담긴 모든 아이템에 대해 파싱을 하도록 반복문을 구성
name_list = []
price_list = []
url_list = []
for cap in cap_info:
    name = cap.find('li', {'class': 'dsc'}).text
    price = cap.find('li', {'class': 'price'}).text
    url = cap.find('a').get('href')
    print("이름: {}, 가격: {}".format(name, price))
    name_list.append(name)
    price_list.append(price)
    url_list.append(url)

#파싱한 정보를 담은 각각의 리스트를 사용하여 데이터 프레임을 생성하라
df = pd.DataFrame({"이름": name_list, "가격": price_list, "url": url_list})
df.head()

#데이터 프레임에 저장한 상품 상세페이지의 URL을 참조하여, 각각의 상품정보의 상세정보를 포함하는 데이터 프레임을 생성하라
cap_detail_df = pd.DataFrame()
for i in range(len(df)):
    # (1) df에 저장된 url 읽어오기
    url = df['url'][i]
    response = requests.get(base_url + url)
    soup = BeautifulSoup(response.content, "lxml")
    
    # (2) 상세페이지의 정보 파싱
    cap_name = soup.find('h3', {'class':'tit-prd'}).text.strip()
    cap_info = soup.find('tbody')
    features = cap_info.findAll('div', {'class': 'tb-left'})
    
    fic_list = []
    for f in features:
        fic_list.append(f.text.strip())
    
    # (3) 파싱한 정보르 사용하여 딕셔너리 생성
    cap_dict = {'제품명': cap_name}
    if len(fic_list) % 2 !=0:
        fic_list = fic_list[1:]
    for i in range(len(fic_list)):
        if i % 2 == 0:
            if fic_list[i] == '':
                cap_dict.update({fic_list[i]: fic_list[i+1]})
    
    # (4) 생성한 딕셔너리로 데이터프레임 생성
    temp_df = pd.DataFrame(data=cap_dict, index = [0]) 
    
    # (5) 데이터 프레임 추가
    if len(cap_detail_df)==0:
        cap_detail_df = temp_df
    else:
        cap_detail_df = cap_detail_df.append(temp_df, ignore_index=True) 

cap_detail_df


#파이썬 데이터 분석 #파이썬 데이터프레임 #파이썬 데이터 시각화 #파이썬 데이터 타입 #파이썬 데이터프레임 만들기 #파이썬 데이터 분석 예제 #파이썬 데이터 타입 확인 #파이썬 데이터 전처리 예제 #파이썬 데이터프레임 합치기 #파이썬 데이터베이스

profile_image 익명 작성일 -

다음코드를 참고해서 수정해보세요.

# (5) 데이터 프레임 추가 if len(cap_detail_df) == 0: cap_detail_df = temp_df else: #cap_detail_df = cap_detail_df.append(temp_df, ignore_index=True) cap_detail_df = pd.DataFrame.from_records(temp_df)

결과:

[골프] 보태니컬 언스트럭쳐 볼캡.. 49,000원 이름: [골프] 보태니컬 언스트럭쳐 볼캡.., 가격: 49,000원 이름: [골프] 보태니컬 언스트럭쳐 볼캡 옐.., 가격: 49,000원 이름: [골프] 보태니컬 언스트럭쳐 볼캡 페.., 가격: 49,000원 이름: [골프] 보태니컬 언스트럭쳐 볼캡 페.., 가격: 49,000원 이름: [골프] 보태니컬 썬 바이저 그린, 가격: 43,000원 이름: [골프] 보태니컬 썬 바이저 페이즐리.., 가격: 43,000원 이름: 우븐라벨 워싱 버킷 햇 인디고, 가격: 69,000원 이름: NEC 플라워 언스트럭쳐 볼캡 브리티.., 가격: 46,000원 이름: NEC 플라워 언스트럭쳐 볼캡 리필 그.., 가격: 46,000원 이름: MLB 핀치히터 LA다저스 볼캡 로얄 블.., 가격: 36,000원 이름: MLB 핀치히터 뉴욕 양키스 볼캡 네이.., 가격: 36,000원 이름: MLB 핀치히터 디트로이트 타이거즈.., 가격: 36,000원 이름: MLB 핀치히터 시카고 화이트 삭스 볼.., 가격: 36,000원 이름: MLB 팀 클래식 뉴욕 양키스 게임 볼.., 가격: 36,000원 이름: 에센셜 무지 사이즈캡 블랙, 가격: 49,000원 이름: MLB 팀 클래식 LA다저스 게임 볼캡.., 가격: 36,000원 이름: MLB 팀 클래식 보스턴 레드삭스 게임.., 가격: 36,000원 이름: MLB 팀 클래식 시카고 화이트 삭스.., 가격: 36,000원 이름: 에센셜 무지 언스트럭쳐 볼캡 블랙, 가격: 39,000원 이름: MLB 팀 클래식 디트로이트 타이거즈.., 가격: 36,000원 이름: 캐주얼 클래식 뉴욕 양키스 볼캡 네.., 가격: 36,000원 이름: 버킷 햇 블랙, 가격: 54,000원 이름: 캐주얼 클래식 LA다저스 볼캡 블루, 가격: 36,000원 이름: MLB 마이크로 로고 LA 다저스 언스트.., 가격: 43,000원 이름: 덕 캔버스 버킷 블랙, 가격: 54,000원 이름: 에센셜 무지 레트로 크라운 사이즈캡.., 가격: 49,000원 이름: 에센셜 무지 제트캡 블랙, 가격: 43,000원 이름: MLB 팀 클래식 샌디에이고 파드리스.., 가격: 36,000원 이름: MLB 마이크로 로고 LA 다저스 언스트.., 가격: 43,000원 이름: 잉글리쉬 풋볼 리그 토트넘 핫스퍼 F.., 가격: 49,000원 이름: MLB 메탈 뱃지 뉴욕 양키스 K프레임.., 가격: 46,000원 이름: 한화 이글스 사이즈캡, 가격: 49,000원 이름: MLB 메탈 뱃지 뉴욕 양키스 K프레임.., 가격: 49,000원 이름: MLB 팀 클래식 토론토 블루제이스 볼.., 가격: 36,000원 이름: NBA 베이직 시카고 불스 스냅백 블랙, 가격: 49,000원 이름: MLB 메탈 뱃지 뉴욕 양키스 K프레임.., 가격: 49,000원 이름: 넘버 플레이트 K프레임 볼캡 블랙, 가격: 46,000원 이름: MLB PCV 뉴욕 양키스 로우 프로파일.., 가격: 49,000원 이름: 잉글리쉬 풋볼 리그 토트넘 핫스퍼 F.., 가격: 43,000원 이름: MLB 어센틱 뉴욕 양키스 게임 네이비, 가격: 53,000원 이름: MLB US 플래그 뉴욕 양키스 프리 커.., 가격: 59,000원 이름: 넘버 플레이트 K프레임 볼캡 네이비, 가격: 46,000원 이름: 에센셜 무지 레트로 크라운 스냅백.., 가격: 49,000원 이름: MLB 어센틱 시카고 화이트삭스 게임.., 가격: 53,000원 이름: 토트넘 핫스퍼 퍼포레이티드 스냅백.., 가격: 59,000원 이름: MLB 팀 클래식 휴스턴 애스트로스 홈.., 가격: 36,000원 이름: MLB 팀 클래식 애리조나 다이아몬드.., 가격: 36,000원 이름: MLB 팀 클래식 탬파베이 레이스 게임.., 가격: 36,000원 이름: MLB 골드 미니 메탈 뉴욕 양키스 볼.., 가격: 43,000원 이름: NBA 베이직 브루클린 네츠 스냅백 블.., 가격: 49,000원 이름: MLB 화이트 온 블랙 뉴욕 양키스 볼.., 가격: 39,000원 이름: MLB 알파 인더스트리 시카고 화이트.., 가격: 49,000원 이름: MLB 골드 미니 메탈 뉴욕 양키스 볼.., 가격: 43,000원 이름: 치노 스크립트 언스트럭쳐 볼캡 블랙, 가격: 43,000원 이름: MLB 워시드 미니 로고 LA 다저스 언.., 가격: 43,000원 이름: 치노 스크립트 언스트럭쳐 볼캡 다크.., 가격: 43,000원 이름: MLB 알파 인더스트리 LA 다저스 사이.., 가격: 49,000원 이름: MLB 팀 클래식 애틀랜타 브레이브스.., 가격: 36,000원 이름: NBA 베이직 LA 레이커스 스냅백 바이.., 가격: 49,000원 이름: MLB US 플래그 LA 다저스 프리 커브.., 가격: 59,000원 이름: MLB US 플래그 시카고 화이트삭스 프.., 가격: 59,000원 이름: 토트넘 핫스퍼 퍼포레이티드 스냅백.., 가격: 59,000원 이름: MLB 메탈 뱃지 LA 다저스 K프레임 볼.., 가격: 46,000원 이름: MLB 팀 클래식 뉴욕 메츠 게임 볼캡.., 가격: 36,000원 이름: MLB 팀 클래식 텍사스 레인저스 볼캡.., 가격: 36,000원 이름: 나일론 트랙 제트캡 블랙, 가격: 43,000원 이름: MLB 팀 클래식 마이애미 말린스 게임.., 가격: 36,000원 이름: US 빈티지 언스트럭쳐 볼캡 로얄, 가격: 43,000원 이름: 타이거 JK X 뉴에라 로우 프로파일.., 가격: 59,000원 이름: 나일론 트랙 뉴욕 양키스 레트로 크.., 가격: 49,000원 이름: NYC THIN K프레임 볼캡 블랙, 가격: 46,000원 이름: MLB US 플래그 디트로이트 타이거즈.., 가격: 59,000원 이름: US 빈티지 언스트럭쳐 볼캡 스톤, 가격: 43,000원 이름: 2023 월드 베이스볼 클래식 어센틱.., 가격: 53,000원 이름: MLB 팀 클래식 콜로라도 로키스 게임.., 가격: 36,000원 이름: 피스 더 월드 롱 바이저 레트로 크라.., 가격: 59,000원 이름: US 빈티지 언스트럭쳐 볼캡 스칼렛, 가격: 43,000원 이름: MLB 어센틱 샌디에이고 파드리스 게.., 가격: 53,000원 이름: MLB 어센틱 뉴욕 양키스 게임 로우.., 가격: 53,000원 이름: MLB 어센틱 피츠버그 파이어리츠 얼.., 가격: 53,000원 이름: NBA 더 리그 골든 스테이트 워리어스.., 가격: 36,000원 이름: 워시드 덕 캔버스 9FORTY 언스트럭쳐.., 가격: 43,000원 이름: 나일론 트랙 뉴욕 양키스 레트로 크.., 가격: 49,000원 이름: 공포의 외인구단 사이즈캡 네이비, 가격: 49,000원 이름: 토트넘 핫스퍼 퍼포레이티드 볼캡 네.., 가격: 49,000원 이름: 매트 폴리 NYC 화이트 온 블랙 K프.., 가격: 46,000원 이름: MLB 어센틱 샌디에이고 파드리스 게.., 가격: 53,000원 이름: MLB 어센틱 보스턴 레드삭스 게임 네.., 가격: 53,000원 이름: MLB 워시드 뉴욕 양키스 버킷 햇 블.., 가격: 59,000원 이름: MLB 화이트 온 블랙 LA 다저스 볼캡, 가격: 39,000원 이름: NBA 베이직 골든 스테이트 워리어스.., 가격: 49,000원 이름: MLB 베이직 LA 다저스 K프레임 볼캡.., 가격: 46,000원 이름: NBA 베이직 보스턴 셀틱스 스냅백 그.., 가격: 49,000원 이름: 무라카미 다카시 도브 캐주얼 클래식.., 가격: 59,000원 이름: BTS X 뉴에라 BEYOND THE SCENE 사이.., 가격: 59,000원 이름: 치노 스크립트 언스트럭쳐 볼캡 초콜.., 가격: 43,000원 이름: 워시드 덕 캔버스 9FORTY 언스트럭쳐.., 가격: 43,000원 이름: NBA 더 리그 밀워키 벅스 볼캡 마운.., 가격: 36,000원 이름: MLB 팀 클래식 시카고 컵스 게임 볼.., 가격: 36,000원 이름: MLB 베이직 뉴욕 양키스 K프레임 볼.., 가격: 46,000원 Process finished with exit code 0

profile_image 익명 작성일 -

메시지를 잘 읽어보면

py:76: FutureWarning: The frame.append method is deprecated. and will be removed from pandas in a future version. Use pandas.concat instead

DataFrame.append 메소드가 pandas 향후 버전에서는 없어질 예정이니 pandas.concat 함수로 바꾸어서 코딩하라는 권고입니다. 에러까지는 아닌 것 같고...

맨 마지막 줄을 이렇게 바꾸라는 의미에요.

cap_detail_df = pd.concat([cap_detail_df, temp_df], ignore_index=True)

파이썬을 활용하는 빅데이터 분석

... 파이썬을 이용해서 분류하고 뭐 그런 걸 빅데이터 분석이라고 하는 건가요? 질문해주셔서 답변드립니다 파이썬으로 데이터 수집, 가공, 분석, 시각화를 수행합니다.

파이썬 데이터분석

... ※ 질문주신 내용 이외에도, 파이썬/데이터분석과 관련하여 궁금한 것들이 있다면, 아래 제 블로그에 방문해 관련된 글을 참고하시기...

파이썬 데이터 분석 질문

x = 6 * np.random.rand(n, 1) - 3 이 어떻게 -3부터 3까지의 범위에서 무작위로 선택된 n개의 값으로 이루어진 배열이 되는지 설명 부탁드립니다. 기본적인 개념도 설명이...

파이썬 데이터분석 질문

... ※ 질문주신 내용 이외에도, 파이썬/데이터분석과 관련하여 궁금한 것들이 있다면, 아래 제 블로그에 방문해 관련된 글을 참고하시기 바랍니다 :D...

파이썬 데이터분석 도와주세요

... ※ 질문주신 내용 이외에도, 파이썬/데이터분석과 관련하여 궁금한 것들이 있다면, 아래 제 블로그에 방문해 관련된 글을 참고하시기...

파이썬으로 데이터분석 하려면 csv

파이썬으로 데이터분석 하려면 csv 파일을 열어서 불러와야 하는데 코드를... ※ 질문주신 내용 이외에도, 데이터분석과 관련하여 궁금한 것들이 있다면...