我有一个 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/