全部,
当从函数返回多个值时,有没有办法保持 pandas 数据框或 statsmodels 回归摘要的网格显示?
def lr(x,y,df):
x=sm.add_constant(x)
est=sm.OLS(y,x)
est=est.fit()
return (df.corr(),
print('\n'),
print('\n'),
est.summary())
以上面的函数为例。如果我只是返回 df.corr() ,它将保留查看 pandas 数据帧时通常出现的网格。如果我只返回 est.summary(),结果相同。然而,当我想同时返回时,它们就变得不那么美观了。我也尝试将它们都放入 print() 中并得到相同的结果。请帮忙!
编辑:
def lr(x,y,df):
x=sm.add_constant(x)
est=sm.OLS(y,x)
est=est.fit()
return (HTML(df.corr()._repr_html_()),
HTML(est.summary()._repr_html_()))
返回(IPython.core.display.HTML 对象,IPython.core.display.HTML 对象)
和
def lr(x,y,df):
x=sm.add_constant(x)
est=sm.OLS(y,x)
est=est.fit()
return (HTML(df.corr()._repr_html_() + est.summary()._repr_html_()))
给出了下面我的评论中列出的错误
谢谢!
最佳答案
df.corr()
和 est.summary()
均返回 DataFrame
对象。
当函数仅返回一个时,Jupyter 通过运行底层方法 _repr_html_
来显示该对象,该方法返回漂亮的 html
表的文本,然后显示它。您可以通过以下方式执行相同的操作:
from IPython.core.display import HTML
HTML(df.corr()._repr_html_())
但是,当您将它们都包装在元组中返回时,Jupyter 在元组上运行 _repr_
方法,该方法仅返回格式不正确的文本。如果您从函数中进行了分配:
my_results = lr(x, y, df)
my_results[0]
你会再次获得漂亮的格式。或者:
my_results[1]
格式也很漂亮。要同时获得两者,请执行以下操作:
from IPython.core.display import HTML
HTML(df.corr()._repr_html_() + est.summary()._repr_html_())
关于python - 从函数返回多个值时,有没有办法保留 pandas 数据帧的网格输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37301682/