几款强大的 Pandas 数据探索工具,推荐收藏使用

简介: 几款强大的 Pandas 数据探索工具,推荐收藏使用

对于 Python 数据分析领域,Pandas 绝对是中坚力量,那么围绕着这个工具,又衍生出了很多辅助工具,今天我们就一起来看看辅助 Pandas 来进行数据探索的几种工具

首先我们先来看看我们的测试数据集

import pandas
df = pd.read_excel("2018_Sales_Total_v2.xlsx")
df


微信图片_20220522105718.png

对于上面的数据,如果使用 Excel,我们可以非常方便的进行简单的过滤、搜索等操作

微信图片_20220522105721.png

那么在不借助 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


微信图片_20220522110147.png

可以看到,Qgrid 的过滤功能还是很不错的,基本上接近于 Excel 了,但是它也有一些缺点,Qgrid 不能进行可视化,也不能使用 Pandas 表达式来过滤和选择数据,所以说,Qgrid 只适用于简单的数据操作和检查


PivottableJs

PivottableJs 工具并不是真正用于查看 DataFrame 数据的,但我们可以把它当做一个非常有用的汇总数据工具来使用

它通过一个 JavaScript 库的数据透视表来进行交互式数据透视和汇总

from pivottablejs import pivot_ui
pivot_ui(df)


微信图片_20220522110152.png

我们通过单击和拖动来汇总每个客户购买的数量

当然,除了基本的求和函数,我们还可以做一些可视化和统计分析

微信图片_20220522110155.png

该工具对于过滤原始 DataFrame 没有太大的用处,但对于透视和汇总数据方面是非常强大,我们可以在构建数据透视表后过滤数据,以此来充分发挥这个工具的作用

Date Analysis Applications


接下来我们介绍比较成熟的 GUI 工具,通常使用 Web 后端(如 Flask)或基于 Qt 的单独应用程序。

这些应用程序的复杂性和功能各不相同,从简单的表格视图和绘图功能到强大的统计分析。这些工具的独特之处在于它们与 Pandas 紧密集成,因此我们可以使用 Pandas 代码来过滤数据并与这些应用程序交互


PandasGUI

我们首先来看的第一个应用程序是 PandasGUI,这个应用程序的独特之处在于它是一个用 Qt 构建的独立应用程序,可以直接从 Jupyter notebook 调用

from pandasgui import show
show(df)


微信图片_20220522110757.png

比如上图,使用 Pandas 查询语法过滤数据以显示一位客户且购买数量 > 15 的数据

PandasGUI 与 Plotly 集成使得我们可以方便的构建可视化

微信图片_20220522110801.png

PandasGUI 的一项非常棒的功能是过滤器对所有选项卡中的 DataFrame 都有效,我们可以使用此功能在绘制或转换数据时尝试不同的数据视图

PandasGUI 的另一个功能是我们可以通过旋转或融合数据来重塑数据,以下是 SKU 单位销售额的摘要

微信图片_20220522110804.png


微信图片_20220522110807.png

PandasGUI 真的是一个令人印象深刻的工具!

Tabloo

Tabloo 使用 Flask 作为后端为 DataFrames 数据提供简单的可视化工具以及类似于 PandasGUI 的绘图功能

import tabloo
tabloo.show(df)


微信图片_20220522110855.png

Dtale

Dtale 还是比较复杂的,功能也更加强大。Dtale 的架构类似于 Tabloo,因为它同样使用 Flask 后端,但也包括一个强大的 React 前端

import dtale
dtale.show(df)


微信图片_20220522110858.png

Dtale 不仅仅是一个 DataFrame 查看器,还是一个非常强大的统计工具集

微信图片_20220522110901.png

我们还可以导出代码,这是一个非常强大的功能,将 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 还可以对数据进行格式化,在下面的示例中,我们将货币和日期列格式化为更易于阅读的形式

微信图片_20220522110906.png


Excel


最后来介绍一些与 Excel 相结合的工具

PyXLL

PyXLL 是一个付费产品,不过我们可以免费试用 30 天来一睹它的风采

微信图片_20220522111008.png

它真正的强大之处在于,我们可以将 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

微信图片_20220522111013.png

好了,今天介绍的 Pandas 数据探索工具就是这么多,喜欢就点个

相关文章
|
5天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
14 2
|
1月前
|
数据格式 Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数转换数据格式。示例代码展示了如何通过`melt()`转为长格式,再用`pivot()`恢复为宽格式。输入数据是包含'Name'和'Age'列的DataFrame,最终结果经过转换后呈现出不同的布局。
40 6
|
1月前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名?
Pandas在Python中提供数据排序和排名功能。使用`sort_values()`进行排序,如`df.sort_values(by='A', ascending=False)`进行降序排序;用`rank()`进行排名,如`df['A'].rank(ascending=False)`进行降序排名。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`。
25 6
|
1月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
【2月更文挑战第28天】【2月更文挑战第103篇】如何使用Python的Pandas库进行数据合并和拼接?
|
1月前
|
索引 Python
如何在Python中,Pandas库实现对数据的时间序列分析?
Pandas在Python中提供强大的时间序列分析功能,包括:1) 使用`pd.date_range()`创建时间序列;2) 通过`pd.DataFrame()`将时间序列转为DataFrame;3) `set_index()`设定时间列作为索引;4) `resample()`实现数据重采样(如按月、季度);5) `rolling()`进行移动窗口计算,如计算移动平均;6) 使用`seasonal_decompose()`进行季节性调整。这些工具适用于各种时间序列分析场景。
35 0
|
3月前
|
索引 Python
Python 教程之 Pandas(11)—— 索引和选择 series 的数据
Python 教程之 Pandas(11)—— 索引和选择 series 的数据
33 0
Python 教程之 Pandas(11)—— 索引和选择 series 的数据
|
3月前
|
索引 Python
Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据
Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据
62 1
Python 教程之 Pandas(4)—— 使用 Pandas 索引和选择数据
|
4天前
|
数据挖掘 数据处理 索引
如何使用Python的Pandas库进行数据筛选和过滤?
Pandas是Python数据分析的核心库,提供DataFrame数据结构。基本步骤包括导入库、创建DataFrame及进行数据筛选。示例代码展示了如何通过布尔索引、`query()`和`loc[]`方法筛选`Age`大于19的记录。
10 0
|
4天前
|
索引 Python
如何使用Pandas进行数据合并?
Pandas提供`merge()`, `join()`, `concat()`等方法进行数据合并。基本步骤包括导入pandas库、创建或加载DataFrame,然后调用这些方法合并数据。示例中展示了如何使用`merge()`和`join()`:创建两个DataFrame `df1`和`df2`,通过`merge()`基于索引合并,以及`join()`进行外连接合并。
14 0
|
5天前
|
Python
如何使用Python的Pandas库进行数据缺失值处理?
Pandas在Python中提供多种处理缺失值的方法:1) 使用`isnull()`检查;2) `dropna()`删除含缺失值的行或列;3) `fillna()`用常数、前后值填充;4) `interpolate()`进行插值填充。根据需求选择合适的方法处理数据缺失。
39 9