Я пытаюсь вызвать класс и метод в другой файл python. Но когда я вызываю класс в другой файл python, он вызывает всю программу python, связанную с этим файлом .py.
Это мой python файл, имеющий другой класс и методы. file_reader.py помогает читать набор данных.
data_processing.py
from sklearn.preprocessing import StandardScaler
from filereader import read_data
from configuration import DATASET_PATH
data = read_data(DATASET_PATH)
scaler = StandardScaler()
'''Normalizing column and time columns to normalizedho_amount and normalized_time'''
class NormalizedColumns:
data['normalized_amount'] = scaler.fit_transform(data['Amount'].values.reshape(-1, 1))
data['normalized_time'] = scaler.fit_transform(data['Time'].values.reshape(-1, 1))
print("=" * 40, "Describing normalized_amount columns ", "=" * 40)
print(data.normalized_amount.describe())
print("=" * 40, "Describing normalized_time columns ", "=" * 40)
print(data.normalized_time.describe())
'''Droping amount and time column from original dataset'''
data = data.drop(['Time', 'Amount'], axis=1)
print(data.head())
'''Separting features and lables'''
class NormalizedFeatures:
def first_xdata(self):
xData = data.iloc[:, data.columns != 'Class'] # feature
return xData
features = NormalizedFeatures()
print(features.first_xdata().head(5))
print('Rows and columns of your new normalized dataset is :', features.first_xdata().shape)
print(features.first_xdata().columns)
print('\n')
class NormalizedLabels:
def second_ydata(self):
yData = data.iloc[:, data.columns == 'Class'] # lables
return yData
labels = NormalizedLabels()
print(labels.second_ydata().head(5))
print('Rows and columns of your new normalized dataset is :', labels.second_ydata().shape)
print(labels.second_ydata().columns)
Я хочу вызвать класс NormalizedFeatures и NormalizedLabels в этом файле python. Но этот файл будет вызывать весь файл dataprocssing.py, включая oversampling.py
oversampling.py
from imblearn.over_sampling import SMOTE
from filereader import read_data
from configuration import DATASET_PATH
from data_processing import features , labels
data = read_data(DATASET_PATH)
sm = SMOTE(random_state= 42)
x_Sampled,y_Sampled = sm.fit_sample(features.first_xdata(),labels.second_ydata().values.ravel())
Source_data_no_fraud_count = len(data[data.Class==0])
Source_data_fraud_count = len(data[data.Class==1])
print('Percentage of fraud counts in original data :{}%'.format((Source_data_fraud_count*100)/(Source_data_no_fraud_count+Source_data_fraud_count)))
Sampled_data_no_fraud_count = len(y_Sampled[y_Sampled==0])
Sampled_data_fraud_count = len(y_Sampled[y_Sampled==1])
print('Percentage of fraud counts in the new data :{}%'.format((Sampled_data_fraud_count*100)/(Sampled_data_no_fraud_count+Sampled_data_fraud_count)))
Исключенный вывод
Percentage of fraud counts in original data:0.1727485630620034%
Percentage of fraud counts in the new data:50.0%