Я пытаюсь создать свой собственный класс Dataframe.Мне бы хотелось, чтобы в нем были какие-то конкретные столбцы, когда я его называю.Поэтому я делаю это:
from pandas import DataFrame
class MyClass(DataFrame):
def __init__(self):
super(MyClass, self).__init__(columns=['Class','Conditions'])
Однако, когда я пытаюсь добавить к нему данные,
test = MyClass()
#test = MyClass(columns=['Class','Conditions'])
test.loc[2] = ['class2',[1, 2, 3]]
Я получаю сообщение об ошибке:
Файл "C: \ Miniconda3 \ lib \ site-packages \ pandas \ core \ indexing.py ", строка 189, в setitem self._setitem_with_indexer (индексатор, значение)
Файл" C: \Miniconda3 \ lib \ site-packages \ pandas \ core \ indexing.py ", строка 451, в _setitem_with_indexer self.obj._data = self.obj.append (значение) ._ data
Файл" C: \ Miniconda3\ lib \ site-packages \ pandas \ core \ frame.py ", строка 6211, в добавлении sort = sort)
Файл" C: \ Miniconda3 \ lib \ site-packages \ pandas \ core \ reshape \ "concat.py ", строка 226, в concat возвращает op.get_result ()
Файл" C: \ Miniconda3 \ lib \ site-packages \ pandas \ core \ reshape \ concat.py ", строка 428, вget_result return (cons._from_axes (new_data, self.new_axes)
Файл "C: \ Miniconda3 \ lib \ site-packages \ pandas \ core \ generic.py", строка 356, в _from_axes возвращает cls (данные), ** kwargs)
Ошибка типа: init () занимает 1 позиционный арно было дано 2
Я понял, что если я не объявлю столбцы в __init__
и назначу их после создания класса, у меня нет проблем.
Однако я хотел бы, чтобы класс создавался с этими именами в виде столбцов.
Большое спасибо.