Ошибка атрибута: модуль ‘pandas.tseries.frequencies’ не имеет атрибута ‘is_subperiod’

#python #pandas #attributeerror

#python #pandas #ошибка атрибута

Вопрос:

Я не могу понять, почему я получаю эту ошибку при попытке использовать is_subperiod функцию pandas импорта

 >>> import pandas as pd
>>> pd.tseries.frequencies.is_subperiod('M', 'Q')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'pandas.tseries.frequencies' has no attribute 'is_subperiod'
  

Это странно, поскольку импорт работает нормально, и я также использовал pandas без каких-либо проблем в прошлом.

Комментарии:

1. какая версия pandas? pd.__version__?

2. @yoav_aaa 0.24.2

3. в версии 0.24.2 отсутствует функция is_subperiod. удалите ее и установите 0.22.0, используя pip install pandas ==0.22.0.

4. теперь я получаю эту ошибку при попытке выполнить следующий импорт: import pandas.compat as compat выдает мне AttributeEror: module 'pandas' has no attribute compat

Ответ №1:

Начиная с версии 0.23 pandas переместил is_subperiod функцию в pd._libs.tslibs.frequencies.is_subperiod (фиксация #17746)

Если вы хотите использовать эту функцию как со старой, так и с новой версиями, вы, вероятно, написали бы что-то вроде:

 import pandas as pd
try:
    _pandas_is_subperiod = pd.tseries.frequencies.is_subperiod
except AttributeError:
    _pandas_is_subperiod = pd._libs.tslibs.frequencies.is_subperiod
_pandas_is_subperiod('M', 'Q')