python - 将 pandas 函数包裹在我自己创建的函数中

标签 python class wrapper

我有一个 Tweetanalyzer 类,有一个数据帧作为实例变量。

现在我想创建一个 write_to_csv 函数,它可以采用 pandas to_csv 函数的所有参数。

我这样做的原因是我不想调用 -> Tweetanalyzer.df.to_csv 只是 Tweetanalyzerobject.write_to_csv 但具有与 to_csv 相同的功能。

我想包装函数可能是正确的方法,包括 *args 和 **kwargs,但我没有让它工作。

class TweetAnalyzer:

    def __init__(self, tweets, df = pd.DataFrame({'A' : []})):

        self.tweets = tweets
        if df.empty:
            self.df = self.tweets_to_dataframe(self.tweets)
        else:
            self.df = df

    def write_to_csv(self):

        self.df.to_csv()

因此,如果我调用 object.write_to_csv(encoding = "utf-8"),它将被解析为 to_csv 代码,并且该代码将在我的函数 write_to_csv 中不指定“编码”的情况下工作。

谢谢!!!

最佳答案

是的,使用 *args 和 **kwargs 可能是正确的想法!像这样的事情:

class TweetAnalyzer:
    def __init__(self, tweets, df=pd.DataFrame({"A": []})):
        self.tweets = tweets
        if df.empty:
            self.df = self.tweets_to_dataframe(self.tweets)
        else:
            self.df = df

    def write_to_csv(self, *args, **kwargs):
        self.df.to_csv(*args, **kwargs)

有关更完整的说明,请参阅:What does ** (double star/asterisk) and * (star/asterisk) do for parameters?

关于python - 将 pandas 函数包裹在我自己创建的函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56673219/

相关文章:

c++ - 用托管类包装 C++ DLL

python - __repr__和eval()有什么关系,__repr__的主要目的是什么?

java - 与使用 java 相比,hbase/hadoop 中的流作业是否有任何功能损失?

python - Django boolean 字段在模板中返回 False,而实际上是 True

php - 如何正确设置 PDO 连接

假设 C++ 显式类型缺失 ('int')

html - 当鼠标悬停在其中一个元素上时,如何为共享一个类的所有元素添加边框?

python - 如何跟踪 Python 中局部变量的值?

python - 添加轴以偏移等值线图

javascript - 您是否对您开发的 Javascript API 包装器方法的参数执行任何验证?