在我自己创建的函数周围包装一个 pandas 函数
Wrap a pandas function around my own created function
我有一个 Tweetanalyzer class,有一个数据帧作为实例变量。
现在我想创建一个 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 代码并且该代码无需在我的 "encoding" 中指定即可运行函数 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?
我有一个 Tweetanalyzer class,有一个数据帧作为实例变量。
现在我想创建一个 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 代码并且该代码无需在我的 "encoding" 中指定即可运行函数 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?