inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Python 실전] 웹크롤링과 데이터분석 : 전세계 축구 선수 몸값 분석

데이터 뜯어보고 맛보기

질문있어요!

371

신지은

작성한 질문수 2

0

df.loc[df['age']>=30, ['name', 'value']]

이 부분이 

TypeError                                 Traceback (most recent call last)
<ipython-input-108-dd0bf85b7488> in <module>
----> 1 df.loc[df['age']>=30, ['name', 'value']]

~\anaconda3\lib\site-packages\pandas\core\ops\common.py in new_method(self, other)
     63         other = item_from_zerodim(other)
     64 
---> 65         return method(self, other)
     66 
     67     return new_method

~\anaconda3\lib\site-packages\pandas\core\ops\__init__.py in wrapper(self, other)
    368         rvalues = extract_array(other, extract_numpy=True)
    369 
--> 370         res_values = comparison_op(lvalues, rvalues, op)
    371 
    372         return self._construct_result(res_values, name=res_name)

~\anaconda3\lib\site-packages\pandas\core\ops\array_ops.py in comparison_op(left, right, op)
    242 
    243     elif is_object_dtype(lvalues.dtype):
--> 244         res_values = comp_method_OBJECT_ARRAY(op, lvalues, rvalues)
    245 
    246     else:

~\anaconda3\lib\site-packages\pandas\core\ops\array_ops.py in comp_method_OBJECT_ARRAY(op, x, y)
     54         result = libops.vec_compare(x.ravel(), y.ravel(), op)
     55     else:
---> 56         result = libops.scalar_compare(x.ravel(), y, op)
     57     return result.reshape(x.shape)
     58 

pandas\_libs\ops.pyx in pandas._libs.ops.scalar_compare()
TypeError: '>=' not supported between instances of 'str' and 'int'
이렇게 오류가 뜨는데 어떻게 해결해야 하나요??


beautifulsoup pandas python 웹-크롤링

답변 2

0

JAE-HOON JEONG

해결하셨을 거 같긴한데, 혹시 도움이 될까 싶어 댓글 남겨요.

저도 웹크롤링한 다음 df.info로 보면 age, number가 int가 아니라 object로 나오더라구요. 그래서 전 웹크롤링해서 받는 코드를 int()로 감싸 int64로 형태를 변환시켰습니다. 이렇게 하면 int64로 age 내 value 형태가 변해서 위 에러가 없어질겁니다. 아래에 뷰티풀숲으로 코딩한 내용 중 int로 감싼 내용만 복붙할게요~

 for i in player_info:

a = i.find_all('td')
ranking = int(a[0].text)
name = a[3].text
position = a[4].text
age = int(a[5].text)
nation = a[6].img['alt']
team = a[7].img['alt']
value = a[8].text.strip()

player_list.append([ranking, name, position, age, nation, team, value])

time.sleep(2)

0

코딩교양스쿨

안녕하세요?

문자와 정수형 숫자를 비교할 때 생기는 오류 메시지인데..df['age'] >=30 이 부분에서 문제가 생긴 것 같습니다. df.info()로 'age'칼럼이 정수형인지(int64)  또 빠진 값은 없는 지 다시 확인해보실래요?

완성자료

0

4

1

섹션5 노션링크 는 따로 없나요?

0

8

1

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

10

2

Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.

0

14

2

첨부자료 Part 4 코드 확인 부탁드리겠습니다.

0

13

2

Free Edition 실습 영상은 아직 업데이트전인가요?

0

8

1

질문 드립니다.

0

36

2

노션 링크

0

36

3

26년 1회 실기 해설 강의

0

43

2

노션 권한요청하였습니다 언제쯤 볼수있나요

0

34

2

AAFM CWM_LEVEL_2 Exam Questions 2026: Right Preparation Method

0

24

1

강의 내용 관련 질문드립니다~

0

34

2

퍼플렉시티 최소 결제단위 50달러로 바뀐 것 같습니다.

0

37

2

깃허브에서 csv파일 불러오기 오류 문의

0

522

2

국적 2개 출력

0

227

1

player_info =soup.find_all('tr' ) 로 선수 정보를 뽑지 않은 이유

0

252

0

9:57 데이터 변경 .astype()

0

206

0

수업 듣던중 오류가 발생하여 문의드립니다. 확인 부탁드려요ㅜㅜ

0

201

0

player_info = soup.find_all('tr', class_ = ['odd', 'even]) 함수가 동작하지 않습니다.

0

367

1

df.info에서 자료형태 질문있습니다.

0

223

0

error

0

210

0

transfermarkt.com 페이지에 대해서 status_code가 404로 오류가 나타납니다.

0

243

0

강의 10:00 분쯔음 player 에 값 넣기

0

439

1

number.append질문

0

482

5