關于pandas的GUI工具,我之前介紹過pandasgui??梢哉f,有了GUI可視化界面,操作就和Excel一樣簡單,本次再介紹一款功能更加強大的GUI神器:D-Tale。
這個庫的名字為啥要D-Tale呢?還去查了下,它是detail的諧音,初衷是要提供數據的所有詳細信息。下面介紹下如何使用它。
啟動、數據加載D-Tale支持多種文件格式,包括CSV、TSV、XLS、XLSX。它是一個以Flask 為后端,React 作為前端構建的,通過pip安裝即可。
pip install dtale
兩種啟動 D-Tale 的方式:
將DataFrame對象傳遞給 D-Tale 函數,在 Jupyter 單元中實例化 GUI。
不導入DataFrame對象的情況下初始化 D-Tale,顯示為一個帶有 GUI 的交互菜單來加載數據并提供各種其他選項。
為了更好地演示,這里選擇第二種。
import dtale
dtale.show(open_browser=True)
運行代碼后,將獲得下面的 GUI 菜單
數據的導入有幾種方式,
從文件加載數據
從網站加載數據。需要傳遞網站的鏈接,可以從中獲取 CSV、JSON、TSV 或 Excel 等文件。
加載示例數據集。這些數據集可能需要一些后臺下載才能從服務器獲取數據集。
本文以一個電影的示例數據集展示如何使用。加載數據集后,就會像 pandas一樣呈現一個表格。表里的所有單元格都可以編輯,就像在 excel 中一樣直接更改值。
列菜單功能當單擊列標題時,可以獲得一個選項列表,選項的內容取決于該列的數據類型。比如下面3個類型:datatime64、int64、str,3個選項列表的共同點是按升序或降序排序。除此之外,對于不同類型的數據會有不同的過濾方法。
具體探索一下項目里的功能。
1. 凍結
鎖定功能類似于excel中的首行凍結,將列鎖定在最左側,這樣可以自由地滾動表格同時看到鎖定的列了。
2.隱藏和刪除
隱藏選項將會去掉表格中的某列,但它不會從實際地刪除。當然,也可以從右上角的條中取消隱藏列。
刪除選項將從數據框中永久刪除列。它類似于 pandas 的 drop 函數。
3. 替換和類型轉換
替換選項可以替換表中某些固定值或者填充空值。可以inplace=True替換某列或者創建一個新列。同時,替換類型可以定義為:特定值、空格或特定字符串的替換。
例如下面,date_published列應包含所有日期類型的字符串,但存在了不應存在的文本 TV Movie 2019,這時候可以用 numpy nan 來替換這個異常值。
現在,我可以使用類型轉換選項輕松地將date_published列的數據類型從字符串更改為日期時間,同時提供了inplace或new columns更改的選項:
4. 描述性統計
pandas 中的describe函數有助于提供列或數據集的統計摘要。這里的 describe 一樣,并且提供的信息比普通的 pandas 函數更多,它為每種數據類型提供了唯一的describe摘要。
對于日期時間類型 column,它提供以下詳細信息
另外,它還為特征生成了histogram和 value_counts 圖
對于整數類型的列,它提供了中心性、頻率、峰度和偏度。它還表示箱線圖、直方圖、value_count 圖和 QQ 圖中的數據。
對于字符串類型的列,它提供最常用的詞及其頻率、字符的詳細摘要、詞值計數圖和值計數圖。
5. 篩選過濾
在 D-Tale 中過濾數據非常簡單,只需要指定所需的過濾器類型。下面的示例顯示按年份 》 2000 和年份 == 2001 過濾數據集:
在篩選日期時間類型列中的數據時,也可以按日期范圍篩選數據。對于字符串類型的列,可以通過以下方式過濾數據:
6. 方差報告
這個選項不適用于字符串類型值。方差報告基于以下兩點來決定特征是否具有低方差:
特征中的唯一值計數/樣本大小 《 10%
最常用值的計數/第二常用值的計數 》 20
顯示計算結果,并用直方圖以呈現結果。
7. 文本清洗
這個選項僅適用于字符串類型的值。文本清洗是數據科學項目的主要部分,如果使用正確的類型,它可以提高模型性能。D-Tale 提供了可以應用于文本的所有可能的文本清理方法,我們只需選擇要應用于文本的方法,工作將在后端即可完成。
主菜單選項在主菜單中,其實包含了列菜單的全部功能,但在主菜單中使用時,更加普適。比如,可以在單個或者多個列,而非手動選擇了。下面是幾個核心功能介紹。
1. 創建列
可以創建新列或者從已有的列中創建列。像我們建模前的特征工程也可以使用它來實現,比如使用兩列執行算數運算來創建新列。同時,我們可以給創建的新列提供名稱,以及設置數據類型。
2. 匯總數據
在 pandas 中,我們通過分組或數據透視表匯總數據。我們也可以用 D-Tale 做同樣的事情。我們直接可以選擇列、聚合函數以及最終數據集中所需的列即可,無需任何代碼。下面是一個例子。
3. 缺失率分析
缺失數據是所有數據集中都會經常出現的問題,因為沒有數據集是完美的,它有意或無意地有很多缺失值。D-Tale 集成了 missingno 庫來可視化數據集中存在的缺失值,同時它也提供矩陣、條形圖、熱圖和樹狀圖。
4. 繪圖
繪圖是數據科學EDA探索性分析階段的重要步驟。D-Tale 集成 plotly 來創建交互式繪圖。它可以提供折線圖、條形圖、散點圖、餅圖、詞云圖、熱圖、3D 散點圖、表面圖、地圖、燭臺圖、樹狀圖和漏斗圖。不同類型的數據支持不同類型的繪圖,像下面這樣。
5. 高亮功能
用于突出顯示數據集的某些部分,就像我們在 pandas 中使用 stylers 來顯示特殊值一樣,highlighters 也可以完成同樣的功能。比如,我們可以高亮缺失值、數據類型、異常值或者范圍。下面的示例顯示了如何高亮顯示缺失值和異常值:
6. 代碼導出、數據導出
在 D-Tale 中對數據框執行的所有操作都會自動轉換為它們的 python/pandas/plotly 等效代碼。可以通過單擊每個操作和圖表 GUI 中出現的導出代碼選項來查看它們。下面是自動生成的一些代碼。
import pandas as pd
from dtale.datasets import {dataset}
df = {dataset}()
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
df = df[[c for c in df.columns if c != ‘imdb_title_id’]]
df = df.rename(columns={‘title’: ‘Movie_title’})
s = df[‘date_published’]
s = df[‘date_published’]
s = s.replace({
‘TV Movie 2019’: np.nan})
df.loc[:, ‘date_published’] = s
df.loc[:, ‘date_published’] = pd.Series(pd.to_datetime(df[‘date_published’], infer_datetime_format=True), name=‘date_published’, index=df[‘date_published’].index)
最后,我們也可以使用導出選項更改為 CSV 或 TSV 后導出數據集。
結論D-Tale 這個GUI強大功能真的是香,以后不想敲代碼的時候可以進行可視化操作了,然后轉成代碼如果需要的話。和之前介紹過的其他類似工具的比較來看,比如pandasGUI、Mito,D-Tale 的功能更加強大。
責任編輯:haq
-
數據
+關注
關注
8文章
7002瀏覽量
88943 -
數據集
+關注
關注
4文章
1208瀏覽量
24689
原文標題:吹爆這個 pandas GUI 神器,自動轉代碼!
文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論