这几款强大的 Python 数据探索工具,推荐收藏使用!
Posted Python学习与数据挖掘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这几款强大的 Python 数据探索工具,推荐收藏使用!相关的知识,希望对你有一定的参考价值。
原文:https://mp.weixin.qq.com/s/lGnHprC_c0iw8TCUFpGD7g
作者:周萝卜
对于 Python 数据分析领域,Pandas 绝对是中坚力量,那么围绕着这个工具,又衍生出了很多辅助工具,今天我们就一起来看看辅助 Pandas 来进行数据探索的几种工,欢迎收藏学习,喜欢点赞支持。 文末提供交流方式,欢迎入群。
首先我们先来看看我们的测试数据集
import pandas
df = pd.read_excel("2018_Sales_Total_v2.xlsx")
df
对于上面的数据,如果使用 Excel,我们可以非常方便的进行简单的过滤、搜索等操作
那么在不借助 Excel 的情况,我们有哪些好用的工具呢
javascript tools
最简单的方法是使用 JavaScript 库向数据中的 DataFrame 视图添加一些交互属性
Qgrid
首先我们来看看 Qgrid,这是一个 Jupyter notebook 组件,可以为我们的 DataFrame 添加交互属性
import qgrid
import pandas
df = pd.read_excel("2018_Sales_Total_v2.xlsx")
widget = qgrid.show_grid(df)
widget
可以看到,Qgrid 的过滤功能还是很不错的,基本上接近于 Excel 了,但是它也有一些缺点,Qgrid 不能进行可视化,也不能使用 Pandas 表达式来过滤和选择数据,所以说,Qgrid 只适用于简单的数据操作和检查
PivottableJs
PivottableJs 工具并不是真正用于查看 DataFrame 数据的,但我们可以把它当做一个非常有用的汇总数据工具来使用
它通过一个 JavaScript 库的数据透视表来进行交互式数据透视和汇总
from pivottablejs import pivot_ui
pivot_ui(df)
我们通过单击和拖动来汇总每个客户购买的数量
当然,除了基本的求和函数,我们还可以做一些可视化和统计分析
该工具对于过滤原始 DataFrame 没有太大的用处,但对于透视和汇总数据方面是非常强大,我们可以在构建数据透视表后过滤数据,以此来充分发挥这个工具的作用
Data Analysis Applications
接下来我们介绍比较成熟的 GUI 工具,通常使用 Web 后端(如 Flask)或基于 Qt 的单独应用程序。
这些应用程序的复杂性和功能各不相同,从简单的表格视图和绘图功能到强大的统计分析。这些工具的独特之处在于它们与 Pandas 紧密集成,因此我们可以使用 Pandas 代码来过滤数据并与这些应用程序交互
PandasGUI
我们首先来看的第一个应用程序是 PandasGUI,这个应用程序的独特之处在于它是一个用 Qt 构建的独立应用程序,可以直接从 Jupyter notebook 调用
from pandasgui import show
show(df)
比如上图,使用 Pandas 查询语法过滤数据以显示一位客户且购买数量 > 15 的数据
PandasGUI 与 Plotly 集成使得我们可以方便的构建可视化
PandasGUI 的一项非常棒的功能是过滤器对所有选项卡中的 DataFrame 都有效,我们可以使用此功能在绘制或转换数据时尝试不同的数据视图
PandasGUI 的另一个功能是我们可以通过旋转或融合数据来重塑数据,以下是 SKU 单位销售额的摘要
PandasGUI 真的是一个令人印象深刻的工具!
Tabloo
Tabloo 使用 Flask 作为后端为 DataFrames 数据提供简单的可视化工具以及类似于 PandasGUI 的绘图功能
import tabloo
tabloo.show(df)
Dtale
Dtale 还是比较复杂的,功能也更加强大。Dtale 的架构类似于 Tabloo,因为它同样使用 Flask 后端,但也包括一个强大的 React 前端
import dtale
dtale.show(df)
Dtale 不仅仅是一个 DataFrame 查看器,还是一个非常强大的统计工具集
我们还可以导出代码,这是一个非常强大的功能,将 Excel + Python 解决方案与普通 Excel 区分开来
下面的例子就可以从上面的可视化图表中导出代码
import numpy as np
import pandas as pd
if isinstance(df, (pd.DatetimeIndex, pd.MultiIndex)):
df = df.to_frame(index=False)
# remove any pre-existing indices for ease of use in the D-Tale code, but this is not required
df = df.reset_index().drop('index', axis=1, errors='ignore')
df.columns = [str(c) for c in df.columns] # update columns to strings in case they are numbers
s = df[~pd.isnull(df['{col}'])][['{col}']]
chart, labels = np.histogram(s, bins=20)
import scipy.stats as sts
kde = sts.gaussian_kde(s['unit price'])
kde_data = kde.pdf(np.linspace(labels.min(), labels.max()))
# main statistics
stats = df['unit price'].describe().to_frame().T
Dtale 还可以对数据进行格式化,在下面的示例中,我们将货币和日期列格式化为更易于阅读的形式
Excel
最后来介绍一些与 Excel 相结合的工具
PyXLL
PyXLL 是一个付费产品,不过我们可以免费试用 30 天来一睹它的风采
它真正的强大之处在于,我们可以将 Jupyter Notebook 与 Excel 共同使用,并使用 jupyter 魔术命令在 Notebook 和 Excel 之间交换数据
xlwings
xlwings 和 PyXLL 类似,也是有商业公司支持的。但是,有一个社区版是开源的,我们可以使用开源版本
虽然 xlwings 不直接与 Jupyter Notebook 集成,但我们可以使用 DataFrame 实时填充 Excel 电子表格并使用 Excel 进行分析
import pandas as pd
import xlwings as xw
url =
df = pd.read_excel("2018_Sales_Total_v2.xlsx")
# Create a new workbook and add the DataFrame to Sheet1
xw.view(df)
此代码将打开一个新的 Excel 实例并将 df 放入单元格 A1
好了,今天介绍的 Pandas 数据探索工具就是这么多,喜欢就点个赞吧
技术交流
欢迎转载、收藏、有所收获点赞支持一下!
目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友
- 方式①、发送如下图片至微信,长按识别,后台回复:加群;
- 方式②、添加微信号:dkl88191,备注:来自CSDN
- 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
以上是关于这几款强大的 Python 数据探索工具,推荐收藏使用!的主要内容,如果未能解决你的问题,请参考以下文章