我在Anaconda分发的Jupyter / IPython笔记本上安装了Python 2.7。如果pandas
数据帧是编码单元格中的最后一个,它会输出一个漂亮的干净表格格式(单元格被漂亮的黑色边框包围)。
如果它不是单元格中的最后一行打印或输出行,则必须将其包装在print()
中以使其输出,如果您将其设置为默认值,则会丢失默认的表格格式细胞的最后一行。我相信这个问题在3.x中表现相同。当df不是单元格中的最后一行代码时,有没有办法告诉Python输出df表格式?根据这篇文章的其余部分,有没有办法在对象代码中的一个方法中进行这项工作(这是我真正想要做的)?
为了帮助调查此事:
这会在DF周围输出漂亮的表:
# rest of my code here
myDF
这不输出表格式,它只是吐出内容:
# my code
print(myDF)
print("other stuff ...")
# more code might be here ...
当我尝试使用DF作为对象内部函数调用的最后一行的语法时,它根本没有输出(示例代码如下)。要修复它,我认为将它包装在print()
中是唯一的选择,但我真的想保持好的表格式。有没有办法做到这一点?
目前无效的代码:
什么都不输出:
class MyObject(MyBaseObject):
# few global variables here used by the class itself
def __init__(self, some args ...):
# Some code that happens in the initialization method
# includes super() for MyBaseObject class
if moveList == "Stored":
_localDF = self.get_solutionDF()
_localDF
def get_solutionDF(self):
# returns a DF created during initialization method
输出DF但不包装在漂亮的表格格式中:
只需在localDF
语句中包含print()
即可修改上述代码。我在一个变量中捕获了get_solutionDF()
的输出作为实验,只是简单地结束了self.get_solutionDF()
的函数没有输出任何东西,但这没有帮助(仍然没有输出)。
欢迎提示。一旦找到DF以通过其他方式输出DF然后简单地使其成为Jupyter代码单元的最后一行,该解决方案也可以帮助其他代码。感谢您的帮助。
答案 0 :(得分:3)
如果要在功能中使用显示而不是打印来显示漂亮的表格。我用它来打印pandas样式格式,这是对我有用的代码:
from Ipython.display import display
while True:
#some operation that generates a pandas dataframe "df"
display(df)
break
注意:如果上面的import命令在您的实现中引发错误,请尝试使用此import命令:
import ipython_genutils
使用Anaconda和Python 3.6的用户需要此变体
`