Я пытался поместить некоторые базовые операции предварительной обработки для фрейма данных pandas в отдельный класс:
import pandas as pd
import numpy as np
from numba import jit
class MyClass:
def _init_(self):
pass
@jit
def preprocess_dataframe(self, path):
self.df = pd.read_csv(path, index_col=False, delimiter=' ' , names=['Time', 'Downloads', 'ServerID', 'Server', 'Date'], usecols=['Time', 'Downloads', 'Server', 'Date'])
print(self.df.head(5))
self.df['Date'] = self.df['Date'].astype(str)
self.df['Timestamp'] = pd.to_datetime(self.df['Time'] +' '+ self.df['Date'], format='%H:%M:%S %Y%m%d')
self.df[['Server_alone', 'Instance']] = self.df['Server'].str.split('-' ,expand=True)
self.df.drop(columns=['Time'], inplace=True)
self.df['Date'] = pd.to_datetime(self.df['Date'], format='%Y-%m-%d')
self.df.set_index(self.df['Date'])
return self.df
Когда я вызываю эту функцию в моем основном скрипте (см. Ниже), я получаю ошибку:
AttributeError: module 'MyClass' has no attribute 'preprocess_dataframe'
Это релевантная часть моего основного сценария:
import MyClass as mc
path = 'Data.txt'
df = mc.preprocess_dataframe(path)
>>>AttributeError: module 'MyClass' has no attribute 'preprocess_dataframe'
Я посмотрел несколько других вопросов, включая this .Однако, ничто не решило мою проблему, несмотря на то, что я думаю, что исправить это довольно легко.Спасибо за вашу помощь!