как передать объект в функцию в python - PullRequest
0 голосов
/ 03 февраля 2020

Я создал класс в python как:

class dataframe():
    #    
    # Initializer / Instance Attributes
    def __init__(self, fcsv, colp, label,DataFrame):

        label = r'\textbf{' + label +'}'

        self.fcsv  = fcsv  
        self.colp  = colp
        self.label = label
        self.dfr   = pd.DataFrame()

Как вы можете заметить, каждый объект будет фреймом данных с некоторыми характеристиками.

Следовательно, в основном код Я пишу следующий список объектов как:

DFC =[]
DFC.append(dataframe('econ_real' ,'r','real price'       ,pd.DataFrame))
DFC.append(dataframe('autoarimax','b','autoarimax model' ,pd.DataFrame))
DFC.append(dataframe('benchmark' ,'g','benchmark model'  ,pd.DataFrame))

Я хотел бы передать некоторые из них в качестве аргумента функции.

Я пробовал что-то вроде taht:

sp='2017-03-01 00:00:00'
ep='2017-05-01 00:00:00'
plot_hh(DFC[:].dfr[sp:ep,'A'])

По сути, я хотел бы передать кадры данных плюс их характеристики и некоторые из их строк и столбцов, те, которые я хотел бы напечатать.

К сожалению, это, похоже, не работает. Действительно, подпрограмма plot дает мне недопустимую синтаксическую ошибку, где подпрограмма plot:

def plot_hh(DFC[:].dfr):

  print('hello')

, и поэтому я заполняю кадры данных:

for idf in range(0,3):
  DFC[idf].dfr = pd.read_csv(fname, sep=';',index_col=0, header = 0)

Я пытался изучать функции и аргументы, но я не могу разобраться с этим.

Спасибо за любую помощь. С наилучшими пожеланиями

1 Ответ

0 голосов
/ 03 февраля 2020

Вы получаете недопустимый синтаксис в своей процедуре печати, попробуйте изменить:

def plot_hh(DFC[:].dfr):
  print('hello')

На:

def plot_hh(df):
  print('hello')
  print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...