DataFrameのサブクラスに属性を追加したいのですが、エラーが発生します。
>>> import pandas as pd
>>>class Foo(pd.DataFrame):
... def __init__(self):
... self.bar=None
...
>>> Foo()
RuntimeError: maximum recursion depth exceeded
DataFrameのサブクラスに属性を追加したいのですが、エラーが発生します。
>>> import pandas as pd
>>>class Foo(pd.DataFrame):
... def __init__(self):
... self.bar=None
...
>>> Foo()
RuntimeError: maximum recursion depth exceeded
あなたはこれを次のように書きたいと思います:
class Foo(pd.DataFrame):
def __init__(self):
super(Foo, self).__init__()
self.bar = None
Pythonの__init__
構文に関する質問を参照してください。
In [12]: class Foo(pd.DataFrame):
....: def __init__(self, bar=None):
....: super(Foo, self).__init__()
....: self.bar = bar
その結果:-
In [30]: my_special_dataframe = Foo(bar=1)
In [31]: my_special_dataframe.bar
Out[31]: 1
In [32]: my_special_dataframe2 = Foo()
In [33]: my_special_dataframe2.bar