简介
Excel的好处之一是它提供了一个直观和强大的图形界面来查看你的数据。相比之下,pandas + Jupyter notebook 提供了大量的编程能力,但在图形化显示和操作DataFrame视图方面能力有限。
在Python生态系统中,有几个工具被设计来填补这一空白。它们的复杂程度从简单的JavaScript库到复杂的、全功能的数据分析引擎不等。一个共同点是它们都提供了一种以图形格式查看和选择性地过滤数据的方法。从这个共同点出发,它们在设计和功能上有很大的不同。
本文将回顾这些DataFrame可视化选项中的几个,以便让你了解情况并评估哪些选项可能对你的分析过程有用。
背景介绍
对于这篇文章,我们将使用某销售数据集样本。下面是Jupyter notebook中的数据视图。
import pandas
url = 'https://github.com/chris1610/pbpython/blob/master/data/2018_Sales_Total_v2.xlsx?raw=True'
df = pd.read_excel(url)
df
下面是Excel中一个类似的视图,对所有列都应用了过滤器。
这种在Excel中熟悉的视图使你能够轻松地看到你的所有数据。你可以通过过滤和排序来检查数据,并在需要时深入了解细节。当你在探索一个新的数据集或解决一个现有数据集的新问题时,这种类型的功能是最有用的。
显然,对于数百万行的数据,这是不可行的。然而,即使你有大的数据集,并且是一个pandas专家,希望你仍然会把DataFrames转存到Excel,并查看数据的子集。
我使用Excel+python的部分原因是,在Excel中检查数据的特别能力要比普通的DataFrame视图好得多。
有了这个背景,让我们来看看在Excel中复制这种简单的查看能力的一些选项。
JavaScript工具
最简单的方法是使用一个JavaScript库来为Jupyter notebook中的DataFrame视图添加一些交互性。
Qgrid
我们要看的第一个工具是来自Quantopian的Qgrid。这个Jupyter notebook部件使用SlickGrid组件来为你的DataFrame添加互动性。
一旦它被安装,你可以显示一个支持排序和过滤数据的DataFrame版本。
import qgrid
import pandas
url = 'https://github.com/chris1610/pbpython/blob/master/data/2018_Sales_Total_v2.xlsx?raw=True'
df = pd.read_excel(url)
widget = qgrid.show_grid(df)
widget