перебирая переменные внутри объекта в python - PullRequest
0 голосов
/ 12 июня 2018

ОК, это может быть очень глупый вопрос, но ...

У меня есть объект x, который содержит несколько кадров данных панд (df1, df2, df3ради аргумента)

Когда программа завершит работу, я хочу экспортировать каждый из этих фреймов данных в свой собственный CSV-файл.На данный момент у меня есть функция в x, которая выглядит следующим образом:

def export(self, path):
    self.df1.to_csv(path+"_df1.csv")
    self.df2.to_csv(path+"_df2.csv")
    self.df3.to_csv(path+"_df3.csv")

Она работает (я могу просто использовать x.export(somepath), но мне постоянно приходится ее менять, потому что данные, которые я хочусохранить в объекте изменения. Кто-нибудь может сказать мне, если есть способ просто перебрать все переменные в объекте (все они имеют одинаковый формат) и (в этом случае) сбросить их все в их соответствующие файлы .csv?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете перебрать __dict__, чтобы получить имена атрибутов и объекты фрейма данных.Вы можете проверить типы объектов, чтобы избежать вызова .to_csv для чего-то, что не является фреймом данных.

Вот пример кода, который создает прототип решения.

class A():
    def __init__(self):
        self.x = pd.DataFrame([[1,2],[3,4]])
        self.y = pd.DataFrame([[5,6],[7,8]])

    def export(self, path):
        for k, v in self.__dict__.items()
            if isintance(v, pd.DataFrame):
                v.to_csv('{}_{}.csv'.format(path, k)

a = A()
a.export('dataframes')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...