作者:君新
来源:关于数据分析和可视化
今天,边肖推荐了两个超级有用的工具来探索和分析数据。更好地帮助数据分析师从数据集中挖掘有用的信息。
# PandasGUI
一听到这个名字,就知道这个工具是基于Pandas的,有GUI界面。其主要功能是:
*查看数据框数据集和系列数据集
*交互式绘制图表。
*过滤数据
*统计分析
*数据修改和复制粘贴
*拖放以导入csv文件
*搜索工具栏
当然,在使用它之前,我们必须先安装工具。
pip安装pandasgui
然后我们导入该工具并使用它来查看数据集。代码如下
将熊猫作为pdfrom pandasgui导入showdf=PD . read _ excel(io=r ' supermark t _ Sales . xlsx ',engine='openpyxl ',sheet_name='Sales ',skiprows=3,usecols='B:R ',nrows=1000)show(df)
运行上述代码后,将弹出一个图形用户界面。
我们先来看看弹出页面的布局。最左边是数据集的形状,例如1000*17。详见下图。
qvj2l q49k 0/b50 a9 de 68022441 ebab d9 f 35 ef a5d 88c /
#数据修改、复制和粘贴
同时,我们还可以修改数据。
qvj2l q49k 0/bb 956 e 9 bed 4497791692 E6 AE 7 CEE 52 c /
#数据的统计分析
在PandasGUI中,我们还可以对数据集进行统计分析,这可以在切换到Statistics选项时看到。
qvj2l q49k 0/bebaaacb8 ddc4 caaa 4 cf 8479 D2 efcafd /
例如,在直方图中,我们看到有X轴和Y轴。我们只需要将相应的列拖动到X轴或Y轴即可。
#数据集变形
在Reshaper的选项中,我们可以将现有的数据集与其他数据集合并,就像pandas中的merge()方法一样,我们还可以制作一个透视表,就像pandas中的pivot_table()方法一样。
rge/tos-cn-i-qvj2lq49k0/927fb80bb6f34ecf9eef834b8022e1e8' />
当然我们还可以将以上的操作转换成代码的形式,通过点击Code Export这个按钮
# 支持csv文件的导入与导出
同时这里还支持csv文件的导入与导出,让我们更加快捷的操作数据集
# Jupyter当中的小插件
下面小编给大家介绍一个在Jupyter当中使用的小插件名叫ipympl,能够使得matplotlib绘制出来的图表也能够具备交互性的特征,当然在使用之前,我们先要安装上该插件
通过pip来安装
pip install ipympl
也可以通过conda来进行安装
conda install -c conda-forge ipympl
然后涉及到具体的使用,我们导入相关的模块
%matplotlib widgetimport pandas as pdimport matplotlib.pyplot as plt
我们使用常用的iris.csv来进行图表的绘制
plt.scatter('sepal_length(cm)', 'petal_width(cm)', data=iris)plt.xlabel('Sepal Length')plt.ylabel('Petal Width')plt.show()
output
从上面的结果来看,绘制出来的图表具备交互性,并且可以任意我们放大、缩小以及拖拽,并且可以将绘制好的图表下载到本地,而针对具有多个子图的图表,也能够实现交互式的绘制
np.random.seed(0)n_bins = 20x = np.random.randn(1000, 3)fig, axes = plt.subplots(nrows=2, ncols=2)ax0, ax1, ax2, ax3 = axes.flatten()colors = ['red', 'blue', 'yellow']ax0.hist(x, n_bins, density=1, histtype='bar', color=colors, label=colors)ax0.legend(prop={'size': 10})ax0.set_title('bars with legend')ax1.hist(x, n_bins, density=1, histtype='bar', stacked=True, color=colors)ax1.set_title('stacked bar')ax2.hist(x, n_bins, histtype='step', stacked=True, fill=False)ax2.set_title('stack step (unfilled)')x_multi = [np.random.randn(n) for n in [10000, 5000, 2000]]ax3.hist(x_multi, n_bins, histtype='bar', color=colors)ax3.set_title('different sample sizes')fig.tight_layout()plt.show()
output