У меня есть класс, который имеет DataFrame в качестве одного из своих атрибутов, и в методе init он создается как пустой DataFrame, если данные не передаются. Это работало нормально до сегодняшнего дня, когда после изменения совершенно другого метода, который даже не использует атрибут dataframe, я теперь не могу импортировать класс вообще. Для иллюстрации:
import pandas as pd
class foo():
def __init__(data=pd.DataFrame()):
self.data = data
В другом скрипте:
from foo import bar
возвращает
Traceback (most recent call last):
File "c:\bar", line 13, in <module>
class foo():
File "bar", line 47, in foo:
data=pd.DataFrame())
File "C:lib\site-packages\pandas\core\frame.py", line 411, in __init__
mgr = init_dict(data, index, columns, dtype=dtype)
File "C:lib\site-packages\pandas\core\internals\construction.py", line 247, in init_dict
columns = data_names = Index(keys)
File "C:lib\site-packages\pandas\core\indexes\base.py", line 387, in __new__
elif isinstance(data, (np.ndarray, Index, ABCSeries)):
TypeError: isinstance() arg 2 must be a type or tuple of types
(пути к файлам обрезаны)
Что на самом делестранно, что после попытки импортировать класс я вообще не могу создавать фреймы данных. Я пытаюсь запустить Python IDE и импортировать панд, все работает, я импортирую свой класс, и теперь вышеупомянутая ошибка теперь происходит даже для test = pd.DataFrame (). Кто-нибудь видел такое раньше?
Редактировать: Итак, в созданном мною классе данных, который является атрибутом того же класса, что и выше, я записал:
@dataclasss
class int_2d_data:
raw = np.ndarray = 0
вместо
@dataclasss
class int_2d_data:
raw: np.ndarray = 0
Исправление, которое заставляло все работать. Я до сих пор не знаю, что случилось или почему это сломало бы панд