我正在尝试使用一些添加的构造函数创建一个像类一样的pandas Dataframe:
class ExtendedDataFrame(DataFrame):
def __init__(self):
super(ExtendedDataFrame, self).__init__() # without this I get a pandas error
@classmethod
def contructor1(cls, filename):
"Create DataFrame from file"
df = pd.read_csv(filename) # returns a DataFrame
df.__class__ = cls
return df
# more methods extending Dataframe ...
所以现在我能够做到:
ExtendedDataFrame.constructor1('table_xx.txt') # returns an ExtendedDataFrame instance
我想要的是能够以这种方式获取我的Table类的实例:
ExtendedDataFrame('table_xx.txt')
建议的方法是什么?
换句话说,我正在尝试制作ExtendedDataFrame
课程,但是像read_csv
这样的一些大熊猫的方法会返回DataFrame
,我希望返回ExtendedDataFrame
。
答案 0 :(得分:0)
在__init__
方法中使用参数扩展,调查提供的参数,如果找到一个字符串参数,则在内部执行Table.constructor1('string')
。
另一方面,更仔细地看待你的问题,我想知道你想在这里实现什么。到目前为止,您的constructor1
类方法没有意义。您希望实现哪种功能,以便df = pd.read_csv(...)
对您来说还不够?