sharebook-kr / pykrx

KRX 주식 정보 스크래핑
695 stars 240 forks source link

get_market_net_purchases_of_equities_by_ticker 함수에서 에러가 발생합니다. #64

Closed lazyTitan157 closed 3 years ago

lazyTitan157 commented 3 years ago

안녕하세요, 아래와 같이 투자자별 순매수상위종목 함수를 사용하면 에러가 발생하고 있습니다. 확인 부탁드립니다!

[테스트 코드] 날짜만 바꿔서 README에 있는 코드 그대로 사용했습니다.

df = stock.get_market_net_purchases_of_equities_by_ticker("20210115", "20210122", "KOSPI", "개인")
print(df.head())

[에러 내용]

Traceback (most recent call last):
  File "marketdata.py", line 28, in <module>
    df = stock.get_market_net_purchases_of_equities_by_ticker("20210122", "20210122", "KOSPI", "개인")
  File "C:\Anaconda3\lib\site-packages\pykrx\stock\api.py", line 783, in get_market_net_purchases_of_equities_by_ticker
    return krx.get_market_net_purchases_of_equities_by_ticker(fromdate, todate, market, investor)
  File "C:\Anaconda3\lib\site-packages\pykrx\website\comm\util.py", line 7, in wrapper
    return func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\pykrx\website\krx\market\wrap.py", line 602, in get_market_net_purchases_of_equities_by_ticker
    '매수거래대금': np.int64, '매도거래대금': np.int64, '순매수거래대금': np.int64})
  File "C:\Anaconda3\lib\site-packages\pandas\util\_decorators.py", line 178, in wrapper
    return func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\generic.py", line 4990, in astype
    results.append(col.astype(dtype[col_name], copy=copy))
  File "C:\Anaconda3\lib\site-packages\pandas\util\_decorators.py", line 178, in wrapper
    return func(*args, **kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\generic.py", line 5001, in astype
    **kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\internals.py", line 3714, in astype
    return self.apply('astype', dtype=dtype, **kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\internals.py", line 3581, in apply
    applied = getattr(b, f)(**kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\internals.py", line 575, in astype
    **kwargs)
  File "C:\Anaconda3\lib\site-packages\pandas\core\internals.py", line 664, in _astype
    values = astype_nansafe(values.ravel(), dtype, copy=True)
  File "C:\Anaconda3\lib\site-packages\pandas\core\dtypes\cast.py", line 709, in astype_nansafe
    return lib.astype_intsafe(arr.ravel(), dtype).reshape(arr.shape)
  File "pandas\_libs\lib.pyx", line 456, in pandas._libs.lib.astype_intsafe
  File "pandas/_libs/src\util.pxd", line 142, in util.set_value_at_unsafe
OverflowError: Python int too large to convert to C long
mr-yoo commented 3 years ago

환경 설정의 문제로 보입니다. 파이썬 버전이 어떻게 되시나요?

깨끗한 가상 환경에서 다시 한 번 테스트 부탁 드립니다.

lazyTitan157 commented 3 years ago

파이썬 버전 3.7 가상환경에서 테스트하니 잘 됩니다! 혹시나 해서 3.5 버전도 동일한 코드로 다시 테스트해봤는데 아래와 같은 오류가 나서 공유드립니다. Traceback (most recent call last): File "unittest.py", line 1, in from pykrx import stock File "C:\Anaconda3\envs\test-3.5\lib\site-packages\pykrx\stock__init__.py", line 1, in from .api import * File "C:\Anaconda3\envs\test-3.5\lib\site-packages\pykrx\stock\api.py", line 22 print(f"market 옵션이 올바르지 않습니다." )

mr-yoo commented 3 years ago

@lazyTitan157 다행이네요. 파이썬 3.5는 오래된 버전이라 지원하지 않는 문법이 많습니다. 위에 reporting 해주신 f-string도 지원하지 않구요. 파이썬 3.5는 2015년도에 나온 버전으로 가능하다면 버전을 업그레이드 하실 것을 추천드립니다.