ValueError: datetime64/timedelta64 values and dtype must have a unit specified

I get an error when trying to retrieve news headlines with Python API. The error only seems to occur on certain time ranges. For example, this works:

import eikon as ek
df = ek.get_news_headlines('Topic:ESG AND Language:LEN', date_from='2022-01-01', date_to='2022-12-01', count=100)

But this does not work (the only difference is the time range):

import eikon as ek
df = ek.get_news_headlines('Topic:ESG AND Language:LEN', date_from='2020-01-01', date_to='2020-12-01', count=100)

This is the error I receive:

Traceback (most recent call last):
  File "...\PycharmProjects\refinitivsentiment\main.py", line 12, in <module>
    df = ek.get_news_headlines(date_from='2020-01-01',
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\eikon\news_request.py", line 126, in get_news_headlines
    return get_data_frame(result)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\eikon\news_request.py", line 144, in get_data_frame
    headlines_dataframe = pd.DataFrame([], numpy.array(first_created, dtype='datetime64'), Headline_Selected_Fields)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\frame.py", line 771, in __init__
    mgr = dict_to_mgr(
          ^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\internals\construction.py", line 450, in dict_to_mgr
    index = ensure_index(index)
            ^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 7333, in ensure_index
    return Index._with_infer(index_like, copy=copy)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 716, in _with_infer
    result = cls(*args, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 486, in __new__
    result = klass(data, copy=copy, name=name, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\datetimes.py", line 359, in __new__
    dtarr = DatetimeArray._from_sequence_not_strict(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\arrays\datetimes.py", line 307, in _from_sequence_not_strict
    subarr, tz, inferred_freq = _sequence_to_dt64ns(
                                ^^^^^^^^^^^^^^^^^^^^
  File "...\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\arrays\datetimes.py", line 2091, in _sequence_to_dt64ns
    data = astype_overflowsafe(data, dtype=DT64NS_DTYPE)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "pandas\_libs\tslibs\np_datetime.pyx", line 288, in pandas._libs.tslibs.np_datetime.astype_overflowsafe
  File "pandas\_libs\tslibs\np_datetime.pyx", line 321, in pandas._libs.tslibs.np_datetime.astype_overflowsafe
ValueError: datetime64/timedelta64 values and dtype must have a unit specified


Do you have any ideas what could be causing the error?

Best Answer

Answers

  • Hi @essi.rajala ,

    I'm sorry to hear that you're facing an issue. However, I was not able to reproduce the issue in my local environment or CodeBook, with the same request.

    1677650649685.png

    It seems from the error that it does not originate with the eikon library, but rather with one of the eikon dependencies, suspecting NumPy or pandas.

    Would suggest verifying the versions of pandas and NumPy against CodeBook versions as mentioned in this thread

    To be of help, below are the current version of the libraries mentioned in the Codebook app

    • Eikon version 1.1.14
    • Pandas version 1.3.5
    • NumPy version 1.22.4
    • Python 3.8.15

    Plus, refer to the Eikon Data API Usage and Limits Guideline, the depth of news headlines is 15 months.

    get_news_headlines: The current limit value (10-Oct-2019) is 100 headlines per request. The depth of history is 15 month.