Python的pandas是否有类似于R中View的功能?

31

View是一个非常有用的函数,允许我在R中查看大数据框的横截面。

Python的pandas DataFrame是否有R的View函数的等效物?

我在R中使用RStudio,在Python中使用PyCharm


1
.describe()方法和.head().tail()非常好用。我建议你熟悉这些方法。一旦你处理的数据超过几千行,查看整个数据框不仅没有帮助,而且还会给你的计算机带来巨大的负担... - Justin
不行,这些都没有帮助。在R和pandas中,head和tail只提供有限的视图,无法帮助我发现问题。我特别想知道pandas中对应的“View”函数。head和tail适用于检查代码是否运行正常,但不能替代数据可视化。 - uday
我听到你了。但我告诉你要尽量远离 R 中的 View 函数。View 不是“数据可视化”,而是显示数据的表格。但是为了回答你的问题,pandas 没有任何东西可以弹出一个新窗口显示完整的数据。 - Justin
好知道。但这会让生活变得更加困难。毫无疑问,pandasR更快,但我想每当我需要进行开发(而不是生产)工作时,我将不得不回到R - uday
1
@Justin 对于RStudio来说,“huge burden on your machine”并不成立,因为它的View()函数可以动态地分块加载数据,并且允许您进行排序、过滤等操作。 - Paul
3
“pandas比R快肯定是错误的……”这种说法是完全错误的:请看这里https://github.com/Rdatatable/data.table/wiki/Benchmarks-:-Grouping - gented
4个回答

18

一个更快的选项可能是通过添加以下代码来设置pandas数据帧以防止换行:

```python pd.set_option('display.max_colwidth', None) ```

请注意,这将允许每个单元格中的文本完全显示,而不是被截断,并且可能会导致表格变得更宽。

import pandas
pandas.set_option('expand_frame_repr', False)

我正在使用Sublime Text 2,它看起来是这样的:

放入选项之前(注意输出文本环绕的情况) Before

放入选项之后(请注意输出如何继续) After

还要确保未选中“查看” > “自动换行”。

此外,您可以使用head(#)按需要打印更多或更少,如下所示:

mydf = pandas.DataFrame.from_csv('myfile.csv', header=1)
print mydf.head(20) # Prints first 20 lines

这里还有一些其他的pandas选项:

pandas.set_option('display.max_columns', 0) # Display any number of columns
pandas.set_option('display.max_rows', 0) # Display any number of rows

通过PyCharm,你可以使用调试器并使用“运行”>“评估表达式”。您可以查看NumPy的默认设置,目前似乎不支持数据框,但您可以评估mydf.as_matrix()以查看DataFrame内容。 - Will
这不是只在调试期间激活吗? - uday
是的,不幸的是只有调试器。 - Will

8
Spyder在Anaconda中(或者我喜欢称之为Python的R Studio)给你提供了查看和排序整个数据框的能力,就像你在R中使用变量浏览器一样。

https://www.continuum.io/

enter image description here


如果您无法正确查看表格,请尝试重新启动Spyder。 - cloudscomputes

4

如果你是一个经常使用R语言并且也在使用Python,而且你更喜欢使用R Studio,那么我建议你使用R Studio来编写Python脚本。 你可以使用reticulate库进行相同操作。 reticulate::conda_python()会带你到Python控制台,要编写脚本,只需从菜单中创建新的Python脚本即可。 接下来考虑以下用Python编写的代码:

import pandas as pd
df_python = pd.DataFrame({'num_legs': [2, 4, 8, 0],
               'num_wings': [2, 0, 0, 0],
               'num_specimen_seen': [10, 2, 1, 8]},
              index=['falcon', 'dog', 'spider', 'fish'])

这将创建一个 pandas 数据框 df_python。

enter image description here

现在使用 exit 关键字退出 Python 控制台。现在当您使用 py$ 时,您可以访问 Python 对象。这可以让您在 R 中使用此数据框,因此您也可以使用 View(py$df_python) 查看数据框,并获得以下输出。

enter image description here

继续编写代码吧!


1
在ipython(笔记本或qtconsole)中,您可以执行以下操作:

from IPython.display import HTML
HTML(myDataFrame.to_html())

虽然这不能帮助你在PyCharm上,但可能值得追求。


一定是我的设置有问题。 - uday
它会导致你的笔记本崩溃 =/ - jvqp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接