在单独的文件中创建我自己的自定义方法
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
导入模块/文件中的所有内容。
我想把我所有的 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
导入模块/文件中的所有内容。