小编grg*_*rge的帖子

子类 DataFrame 的 Pandas groupby、resample 等

注意:下面的线程提示了一个 pull request,它最终被合并到v1.10 中。此问题现已解决。

我正在使用子类化的 DataFrame,以便我可以更方便地访问某些特定于我的用例的转换方法和元数据。大多数 DataFrame 操作按预期工作,因为它们返回子类的实例,而不是pandas.DataFrame. 然而,聚合操作喜欢DataFrame.groupby并且DataFrame.resample似乎把这搞砸了。

这是一个错误,还是在定义我的子类时遗漏了什么?

下面是一个最小的例子,在 Pandas 0.25.1 上测试过:

class MyDataFrame(pd.DataFrame):
    @property
    def _constructor(self):
        return MyDataFrame

dates = pd.date_range('2019', freq='D', periods=365)
my_df = MyDataFrame(range(len(dates)), index=dates)

assert isinstance(my_df, MyDataFrame)
# Success!

assert isinstance(my_df.diff(), MyDataFrame)
# Success!

assert isinstance(my_df.sample(10), MyDataFrame)
# Success!

assert isinstance(my_df[:10], MyDataFrame)
# Success!

assert isinstance(my_df.resample("D").sum(), MyDataFrame)
# AssertionError

assert isinstance(my_df.groupby(df.index.month).sum(), MyDataFrame)
# AssertionError
Run Code Online (Sandbox Code Playgroud)

python subclassing dataframe pandas

6
推荐指数
1
解决办法
317
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

subclassing ×1