【发布时间】:2018-06-29 19:13:02
【问题描述】:
我希望扩展 Panda 的 DataFrame,创建一个对象,其中所有原始 DataFrame 属性/方法都完好无损,同时提供一些新的属性/方法。我还需要能够将已经是 DataFrame 的对象转换(或复制)到我的新类。我所拥有的似乎有效,但我觉得我可能违反了一些基本惯例。这是这样做的正确方法,还是我应该首先这样做?
import pandas as pd
class DataFrame(pd.DataFrame):
def __init__(self, df):
df.__class__ = DataFrame # effectively 'cast' Pandas DataFrame as my own
我的想法是我可以直接从 Pandas DataFrame 初始化它,例如:
df = DataFrame(pd.read_csv(path))
【问题讨论】:
-
你混淆了继承和组合。你的
DataFrame类既“有”又“是”pd.DataFrame。 -
self = df什么都不做
标签: python pandas class inheritance