Как изменить собственные данные подкласса из dataframe? - PullRequest
0 голосов
/ 01 ноября 2018

То, что я хочу сделать, это как:

class myclass(DataFrame):
    ...
    def add(self, series): # series is a Series
        self = self.append(series)

Я знаю, что 'self = self.append (series)' не правильно, но как исправить это? Причина, в отличие от списка в Python, операция добавления в DataFrame сама по себе не изменяется, так как я могу обновить себя с помощью добавления?

1 Ответ

0 голосов
/ 01 ноября 2018

Вам не нужно добавлять новый подкласс, вы можете просто добавить свои собственные методы в pd.DataFrame() с помощью monkey-patching .

Настройка

import pandas as pd

def vertical_add(self, series):
    return pd.concat([self, series])

def horizontal_add(self, series):
    return pd.concat([self, series], axis=1)

pd.DataFrame.vertical_add = vertical_add
pd.DataFrame.horizontal_add = horizontal_add

Определить некоторые данные

df = pd.DataFrame(data={'a': [1, 2, 3, 4, 5], 'b': ['a', 'b', 'c', 'd', 'e']})
series = pd.Series(np.arange(10,16))

Применение нового метода (ов)

df.vertical_add(series)
df.horizontal_add(series)
...