我试图在派生Pandas数据帧的构造函数中自动读入数据。数据帧方法没有返回派生类类型的问题可以通过更改\u构造函数属性来解决。在
import pandas as pd
class Derived(pd.DataFrame):
@property
def _constructor(self):
return Derived
def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False):
print('Constructor')
super(Derived, self).__init__(index=range(2), columns=['a', 'b'])
data = [[1, 2], [3, 4]]
self.ix[:, ['a', 'b']] = data
但是,实例对象中的切片会重新调用构造函数并重新设置数据。在
^{pr2}$我可以用以下方法解决:
import pandas as pd
class Derived(pd.DataFrame):
@property
def _constructor(self):
return Derived
def __init__(self, data=None, index=None, columns=None, dtype=None,
copy=False):
print('Constructor')
if isinstance(data, pd.core.internals.BlockManager):
super(Derived, self).__init__(data=data, index=index,
columns=columns, dtype=dtype,
copy=copy)
else:
super(Derived, self).__init__(index=range(2), columns=['a', 'b'])
data = [[1, 2], [3, 4]]
self.ix[:, ['a', 'b']] = data
我觉得这很脏。在
我想知道在Pandas数据帧初始化期间是否有更优雅的方法来设置数据?另一种模式会更好吗?在
目前没有回答
相关问题 更多 >
编程相关推荐