Класс Python, полученный из DataFrame от pandas с атрибутом list / DataFrame - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь создать класс, полученный из панд DataFrame. Каждый класс должен иметь атрибут типа string, DataFrame и list. С атрибутом string проблем нет, но DataFrame и list каждый вызывает предупреждение. Несмотря на предупреждения, код, кажется, ведет себя правильно.

Может кто-нибудь помочь мне исправить мой код? Или подавить предупреждения?

Код:

import pandas as pd

class MyClass(pd.DataFrame):
    def __init__(self, arg_string, arg_dataframe, *arg_params):
        pd.DataFrame.__init__(self)
        self._string    = arg_string
        self._dataframe = arg_dataframe
        self._params    = arg_params

if __name__=='__main__':
    df = pd.DataFrame()
    c1 = MyClass("test", df, 1, 2, 3)

    print(c1._string)
    print(c1._dataframe)
    print(c1._params)

Предупреждающее сообщение:

so_example.py:7: UserWarning: Pandas doesn't allow columns to be created via a new attribu
te name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
  self._dataframe = arg_dataframe

so_example.py:8: UserWarning: Pandas doesn't allow columns to be created via a new attribu
te name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access
  self._params    = arg_params

Stdout:

test
Empty DataFrame
Columns: []
Index: []
(1, 2, 3)

1 Ответ

0 голосов
/ 31 августа 2018

Вы пытаетесь создать подкласс для фрейма данных.

Я ответил, как подкласс здесь -> LINK


Почему у атрибута фрейма данных есть другой фрейм данных? Если вы хотите, чтобы объект имел несколько атрибутов, один из которых представляет собой фрейм данных, это нормально. Только не определяйте класс как class MyClass(pd.DataFrame):, а class MyClass(object):.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...