在单独的文件中创建我自己的自定义方法

Create my own Custom Methods in seperate file

我想把我所有的 methods\functions 都放在自定义文件夹中。这样我就可以导入了,我常用的功能都有了。

让我们来看看我目前的设置。 文件夹名称:CustomMetrics(位于我工作环境中的 site-packages 文件夹中)

内部文件夹: 文件 1 main_func.py : 这个文件有所有的方法和它的代码 在底部我放置了这段代码以确保文件在导入时运行

print("before __name__ guard")
if __name__ == '__main__':
    missing_zero_values_table()
    barplots()   
    bool_histograms()  
    univariate_kdeplots()   
    get_mostProbable()
    KDE_feature_vs_Multiclass()
    get_outliers_IQRmethod()
    outlier_filter()
    get_clf_name()
    train_classifier_ensemble_CV()
    plot_mean_feature_importances()
    get_RFE_rankings()  
    get_optimal_n_components() 
    compare_optimal_n_components() 
    tune_classifier_ensemble()
    get_validation_curve()  
    get_learning_curve()
print("after __name__ guard")

文件 2: init.py: 这个文件导入了主文件中存在的所有方法

from CustomMetrics.main_func import missing_zero_values_table
from CustomMetrics.main_func import barplots
from CustomMetrics.main_func import bool_histograms
from CustomMetrics.main_func import univariate_kdeplots
from CustomMetrics.main_func import get_mostProbable
from CustomMetrics.main_func import KDE_feature_vs_Multiclass
from CustomMetrics.main_func import get_outliers_IQRmethod
from CustomMetrics.main_func import outlier_filter
from CustomMetrics.main_func import get_clf_name
from CustomMetrics.main_func import train_classifier_ensemble_CV
from CustomMetrics.main_func import plot_mean_feature_importances
from CustomMetrics.main_func import get_RFE_rankings
from CustomMetrics.main_func import get_optimal_n_components
from CustomMetrics.main_func import compare_optimal_n_components
from CustomMetrics.main_func import tune_classifier_ensemble
from CustomMetrics.main_func import get_validation_curve
from CustomMetrics.main_func import get_learning_curve
from CustomMetrics.main_func import pandas_entropy

文件 3: EDA.py 在这个文件中我导入了 CustomMetrics。我没有收到任何错误,并且打印出文件已编译。我知道这一点是因为在导入时我从主文件的底部打印了这个

before __name__ guard
after __name__ guard  

但是一旦我尝试使用其中一个函数,我得到一个错误函数不存在

通话

missing_zero_values_table(df)

错误

----> 19 missing_zero_values_table(df)
NameError: name 'missing_zero_values_table' is not defined

如何在主文件中定义

def missing_zero_values_table(df):
    zero_val = df.eq(0).sum() #(df == 0).astype(int).sum(axis=0)
    mis_val = df.isnull().sum() #df.eq(-999).sum() #
    zero_val_pct = 100 * df.eq(0).sum() / len(df)
    mis_val_percent = 100 * df.eq(-999).sum() / len(df)
    mz_table = pd.concat([zero_val, zero_val_pct ,mis_val, mis_val_percent], axis=1)
    mz_table = mz_table.rename(columns = {0 : 'Zero Values',1: '% of Zero Values' ,2 : 'Missing Values', 3 : '% of Total Values'})
    mz_table['Total Zero Missing Values'] = mz_table['Zero Values'] + mz_table['Missing Values']
    mz_table['% Total Zero Missing Values'] = 100 * mz_table['Total Zero Missing Values'] / len(df)
    mz_table['Data Type'] = df.dtypes
    mz_table = mz_table[
        mz_table.iloc[:,2] != 0 ].sort_values( #Missing Values Col#2
    '% of Total Values', ascending=False).round(1)
    print ("Your selected dataframe has " + str(df.shape[1]) + " columns and " + str(df.shape[0]) + " Rows.\n"      
        "There are " + str(mz_table.shape[0]) +
          " columns that have missing values.")
    return mz_table

我应该如何或做什么来查看为什么我的导入不起作用?

只需使用以下行导入 EDA.py 文件中的所有内容:

from CustomMetrics.main_func import *

使用 *import 导入模块/文件中的所有内容。