首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将方法添加到Python中的现有类中?

如何将方法添加到Python中的现有类中?
EN

Stack Overflow用户
提问于 2018-03-06 20:08:51
回答 1查看 7K关注 0票数 7

我有一个非常方便的高级pd.DataFrame保存函数,我想要添加到pandas中。如何将此方法添加到pd.DataFrame类中?

代码语言:javascript
复制
def to_file(df, path, sep="\t", compression="infer", pickled="infer", verbose=False, **args):
    _ , ext = os.path.splitext(path)
    # Serialization
    if pickled == "infer":
        if ext in {".pkl", ".pgz", ".pbz2"}:
            pickled = True
        else:
            pickled = False
    # Compression
    if compression == "infer":
        if pickled:
            if ext == ".pkl":
                compression = None
            if ext == ".pgz":
                compression = "gzip"
            if ext == ".pbz2":
                compression = "bz2"
        else:
            compression = None
            if path.endswith(".gz"):
                compression = "gzip"
            if path.endswith(".bz2"):
                compression = "bz2"
    if verbose:
        print(
            f"path:\t{path}", 
            f"sep:\t{repr(sep)}",
            f"compression:\t{compression}",
            f"pickled:\t{pickled}", 
            sep="\n", 
            file=sys.stderr,
        )
    if pickled == False:
        df.to_csv(path, sep=sep, compression=compression, **args)
    if pickled == True:
        df.to_pickle(path, compression=compression, **args)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-06 20:14:06

使用python类继承。这将允许您使用Pandas数据框架中的所有方法,并且仍然定义您自己的方法。

代码语言:javascript
复制
import pandas as pd

class NewDF(pd.DataFrame)
    def __init__(self, *args):
        pd.DataFrame.__init__(self, *args)

    def to_file(df, path, sep="\t", compression="infer", pickled="infer", verbose=False, **args):
        ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49139164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档