繁体   English   中英

在扩展的`pandas.DataFrame`类中添加列

[英]Add columns to extended `pandas.DataFrame` class

我创建了pandas.DataFrame的子类来捆绑一些功能:

class ABT(pandas.DataFrame):
    def __init__(self, data=None, ...):
        if data is None:
            ...
            data = DataFrame(..., tz='utc'))
        super(ABT, self).__init__(data)

我想制作一个使用另一个DataFrame作为参数并将其附加到ABT 问题是: 如何加入/合并/与self

    def add_df(self, new_df):
        df_utc = new_df.tz_localize('CET', ambiguous='NaT').tz_convert('utc')

        ...

        self.merge(df_utc , how='left', inplace=True)

上面的方法不起作用,但是我希望有一种解决方法。

没有用于merge inplace关键字。 除此之外,您还应该阅读Subclassing pandas数据结构 所以你需要这样的东西:

class ABT(pd.DataFrame):

    @property
    def _constructor(self):
        return ABT

    @property
    def _constructor_sliced(self):
        return pd.Series

    def add_df(self, new_df):
        return self.merge(new_df, how='left')



abt1 = ABT(df1)
abt2 = ABT(df2)
abt1 = abt1.add_df(abt2)

如果不定义构造函数,结果add_df()将类型pandas.core.frame.DataFrame代替ABT

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM