继承和“超级”与熊猫数据框

时间:2020-06-16 23:49:21

标签: python pandas oop inheritance super

我很难理解如何正确使用inheritance并正确设计程序。

我试图尽可能简化我的代码。 因此,我得到了pandas数据帧,并为每一行创建一个API端点的XML消息。 我有以下代码:

class Parse:

    def __init__(self, row):
        self.row = row

    def parse_header(self):
        header = f'''<header>
            <period>{self.row['year_period']}</period>
            <date>{self.row['date_text']}</date>
        </header>'''

        return header


class Prep(Parse):

    def __init__(self, data, file_name):

        super().__init__()
        self.data = data
        self.file_dir = os.path.join('data', 'raw')
        self.file_name = file_name

    def create_line(self):
        self.data['line_xml'] = self.data.apply(lambda x: self.parse_header(x), axis=1)

        return self.data

使之困难的是,Parse在数据帧的每一行上进行操作并获取scalar值。 Prep在整个数据帧/列上运行。

所以我陷入了super().init的困境,我应该在那儿给出什么参数,因为self.parse_header中的Prep现在不接受任何参数。

如果不走这条路,我很乐意接受完全不同的设计。

0 个答案:

没有答案