簡體   English   中英

如何使用 Fitter 庫遍歷所有列並檢查數據分布?

[英]How to loop over all columns and check data distribution using Fitter library?

我需要檢查數據集中所有數字列的數據分布。 我選擇了Fitter庫來這樣做。 我遍歷所有列,但只有一個圖+匯總表作為結果。 我的代碼有什么問題?

from fitter import Fitter
import numpy as np

df_numeric = df.select_dtypes(include=np.number).sample(n=5000)
num_cols = df_numeric.columns.tolist()

distr = ['cauchy',
 'chi2',
 'expon',
 'exponpow',
 'gamma',
 'beta',
 'lognorm', 
 'logistic',
 'norm',
 'powerlaw',
 'rayleigh',
 'uniform']

for col in num_cols:
    modif_col = df_numeric[col].fillna(0).values
    dist_fitter =  Fitter(modif_col, distributions=distr)
    dist_fitter.fit()
    dist_fitter.summary()

在此處輸入圖像描述

也許還有另一種循環檢查分布的方法?

看起來您的代碼正確地遍歷了 dataframe 中的所有數字列,使用 Fitter 庫將不同的分布擬合到每一列,然后打印擬合結果的摘要。 但是,您只會看到一個 plot 和匯總表作為結果,因為您要為循環的每次迭代覆蓋 plot 和匯總表。

要查看每個列的單獨 plot 和匯總表,您應該在循環內移動對 dist_fitter.summary() 和 dist_fitter.plot() 的調用,並確保為每個 plot 和匯總表提供唯一的名稱或標題,這樣您在查看它們時可以區分它們。

這是您可以使用它的代碼示例

 import matplotlib.pyplot as plt

   for col in num_cols:
    modif_col = df_numeric[col].fillna(0).values
    dist_fitter =  Fitter(modif_col, distributions=distr)
    dist_fitter.fit()
    plt.figure()
    dist_fitter.plot()
    plt.title(col)
    plt.show()
    print(col)
    dist_fitter.summary()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM