Я работаю с ноутбуком Jupyter на экземпляре AWS Sagemaker. Для удобства я написал файл .py с парой определенных функций;
#function to gather the percent of acts in each label feature combo
def compute_pct_accts(data, label_cnt):
"""
data is the output from aggregate_count
labe_cnt gives the breakdown of data for each target value
"""
label_data_combined = pd.merge(data, label_cnt, how='inner', left_on= 'label', right_on = 'label')
label_data_combined['Act_percent'] = np.round((label_data_combined['ACT_CNT']/label_data_combined['Total_Cnt'])*100,2)
return label_data_combined
#write a function to perform aggregation for target and feature column
def aggregate_count(df, var, target):
"""
df is the dataframe,
var is the feature name
target is the label varaible(0 or 1)
"""
label_var_cnt = df.groupby([var,target],observed=True)['ID'].count()
label_var_cnt = label_var_cnt.reset_index()
label_var_cnt.rename(columns={'ID':'ACT_CNT'},inplace=True)
return label_var_cnt
Обе эти функции хранятся в файле .py с именем file1.py. Затем, чтобы найти их в своей записной книжке, я набрал;
from file1 import *
import pandas as pd
Эта команда импортировала обе функции. Но когда я попытался запустить функцию;
compute_pct_accts(GIACT_Match_label_cnt, label_cnt)
Я получаю сообщение об ошибке имени;
pd not found
Обратите внимание, что я импортировал панд как pd в свой блокнот Jupyter. Я знаю об использовании опции
%run -i compute_pct_accts_new.py
но это заставляет меня написать новый файл Python с этой функцией. Мой вопрос в том, можем ли мы иметь один файл Python со всеми определенными в нем функциями, чтобы мы могли импортировать их все сразу и интерактивно использовать в блокноте. Помощь приветствуется.
import pandas as pd
в файл python, как и советовали. Но ошибка все та жеname pd is not defined
. 17.03.2021