Sweetviz是一個開源Python庫,它只需三行代碼就可以生成漂亮的高精度可視化效果來啟動EDA(探索性數據分析)。輸出一個HTML。
如上圖所示,它不僅能根據性別、年齡等不同欄目縱向分析數據,還能對每個欄目做眾數、最大值、最小值等橫向對比。
所有輸入的數值、文本信息都會被自動檢測,并進行數據分析、可視化和對比,最后自動幫你進行總結,是一個探索性數據分析的好幫手。
1.準備
開始之前,你要確保Python和pip已經成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
**(可選1) **如果你用Python的目的是數據分析,可以直接安裝Anaconda:Python數據分析與挖掘好幫手—Anaconda,它內置了Python和pip.
**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環境 打開 Cmd (開始-運行-CMD)。
- MacOS 環境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install sweetviz
2.sweetviz 基本用法
sweetviz 使用的原理是,使用一行代碼,生成一個數據報告的對象(其中,my_dataframe是pandas中的DataFrame,一種表格型數據結構):
import pandas as pd
import sweetviz as sv
# 讀取數據
my_dataframe = pd.read_csv('../ImpartData/iris.csv')
# 分析數據
my_report = sv.analyze(my_dataframe)
# 生成報告
my_report.show_html()
執行完成后,會在當前文件夾下生成一個HTML的報告文件
雙擊這個html,你就能看到精美的分析報告了:
其中,分析數據有三種函數可以用,除了上面提到的analyze函數,還有 compare 和 compare_intra 函數。
首先是analyze函數:
analyze(source: Union[pd.DataFrame, Tuple[pd.DataFrame, str]],
target_feat: str = None,
feat_cfg: FeatureConfig = None,
pairwise_analysis: str = 'auto')
可見其有以下4個參數可以配置:
- source: 以pandas中的DataFrame數據結構作為分析對象。
- target_feat: 需要被標記為目標對象的字符串。
- feat_cfg: 需要被跳過、或是需要被強制轉換為某種數據類型的特征。
- pairwise_analysis: 相關性分析可能需要花費較長時間。如果超過了你的忍受范圍,就需要設置這個參數為on或者off,以判斷是否需要分析數據相關性。
compare()丨兩個數據集比較
my_report = sv.compare([my_dataframe, "Training Data"], [test_df, "Test Data"], "Survived", feature_config)
要比較兩個數據集,只需使用該 ** compare()
** 函數。它的參數與 ** analyze()
相同,只是插入了第二個參數來覆蓋比較數據幀。建議使用 [dataframe, "name"] 參數格式以更好地區分基礎數據幀和比較數據幀。(例如 ** [my_df, "Train"]
** 比my_df
** 更好)
compare_intra()丨數據集欄目比較
my_report = sv.compare_intra(my_dataframe, my_dataframe["Sex"] == "male", ["Male", "Female"], feature_config)
想要對數據集中某個欄目下的參數進行分析,就采用這個函數進行。
例如,如果需要比較“性別”欄目下的“男性”和“女性”,就可以采用這個函數。
3.調整報告布局
一旦你創建了你的報告對象,只需將它傳遞給兩個show函數中的一個:
1 . show_html() :
show_html( filepath='SWEETVIZ_REPORT.html',
open_browser=True,
layout='widescreen',
scale=None)
show_html(...) 將在當前文件路徑中創建并保存 HTML 報告。有以下參數:
- **layout ** ( 布局 ):無論是 ' widescreen '或 'vertical'。當鼠標移過每個功能時,寬屏布局會在屏幕右側顯示詳細信息。新的(從 2.0 開始)垂直布局在水平方向上更加緊湊,并且可以在單擊時擴展每個細節區域。
- scale :使用浮點數(scale=0.8或 None )來縮放整個報告。
- open_browser :啟用 Web 瀏覽器的自動打開以顯示報告。如果不需要,可以在此處禁用它。
2.show_notebook():
show_notebook( w=None,
h=None,
scale=None,
layout='widescreen',
filepath=None)
它將嵌入一個 IFRAME 元素,在notebook中顯示報告(例如 Jupyter、Google Colab 等)。
請注意,由于Notebook通常是一個更受限制的環境,因此使用自定義寬度/高度/比例值 ( **w
** , h
** , ** scale
) 可能是個好主意。選項是:
- w (寬度):設置報告輸出窗口的寬度。可以是百分比字符串 ( w="100%") 或像素 (w=900)。
- h (高度):設置報告輸出窗口的高度。可以是像素數 (h=700) 或將窗口拉伸到與所有特征 ( h="full")一樣高。
- scale :與上面的 show_html 相同。
- layout :與上面的 show_html 相同。
- scale :與上面的 show_html 相同。
- filepath :可選的輸出 HTML 報告。
-
開源
+關注
關注
3文章
3533瀏覽量
43306 -
代碼
+關注
關注
30文章
4880瀏覽量
70033 -
數據分析
+關注
關注
2文章
1469瀏覽量
34705
發布評論請先 登錄
相關推薦
什么是探索性測試ET
請問這三行代碼是固定這樣寫的嗎?
三行搞定獨立按鍵
什么是三行按鍵?有什么用
探索性數據分析(EDA)及其應用

設計多網絡協議的Python網絡編程的探索性指南
細分模型探索性數據分析和預處理

評論