#python #pandas #dataframe #inheritance
#python #pandas #фрейм данных #наследование
Вопрос:
Объект типа =DataFrame, обрабатываемый в функции маскирования, возвращается в type=list.
Я пытаюсь использовать наследование для сокращения и упрощения жизни, поскольку существует много похожего кода. Но он возвращается в виде списка, а не фрейма данных. У меня много похожего кода, например:
df4=df3.drop_duplicates(['TITLE'])
#from df3 find title duplicated items
index2=df3.duplicated(['TITLE'])
#duplicated titles items are dropped into df5
df5=df3[index2].reset_index(drop=True)
#items with same title but different database are dropped
df6=df5.drop_duplicates(['TITLE'])
#from df5 find title duplicated items
index3=df5.duplicated(['TITLE'])
#duplicated titles items from df5 are dropped into df6
df7=df5[index3].reset_index(drop=True)
Класс наследования, в котором определена функция:
class Mask_TITLE:
def __init__(self,masked):
self.masked=masked
def mask(masked):
return [masked.drop_duplicates(['TITLE'])]
Выполнив :
>>df1=Mask_TITLE.mask(df)
df1 возвращается в виде списка.
Как убедиться, что df1 по-прежнему является фреймом данных, изменив функцию, или это просто наследование, а функция невозможна для использования в условиях фрейма данных?
Комментарии:
1. Я считаю, что это тот факт, что у вас есть
[]
masked.drop_duplicates(['TITLE'])
. Кроме того, вам не хватает aself
вmask
(если вы не предполагаете, что это будетstaticmethod
или эквивалент… это не очень понятно).
Ответ №1:
Вы превращаете его в список здесь:
def mask(masked):
return [masked.drop_duplicates(['TITLE'])]
[
amp; ]
вокруг возвращаемого значения делает его списком из одного элемента
Попробуйте это:
def mask(masked):
return masked.drop_duplicates(['TITLE'])
Комментарии:
1. A
list
, а не массив.