Ich möchte eine DataFrame
erstellen, die eine Anzahl von verschiedenenSeries
Unterklassen ich definiert habe. Es scheint, dass die Unterklasse von der Series
entfernt ist, wenn sie jedoch einer DataFrame
zugeordnet ist.Python pandas: speichern Series Unterklasse als eine DataFrame Spalte
Hier ist ein Spielzeug Beispiel um das Problem zu veranschaulichen:
>>> import pandas as pd
>>> class SeriesSubclass(pd.Series):
... @property
... def _constructor(self):
... return SeriesSubclass
... def times_two(self):
... """Method I need in this subclass."""
... return self * 2
...
>>> subclass = SeriesSubclass([7, 8, 9])
>>> type(subclass) # fine
<class '__main__.SeriesSubclass'>
>>> subclass.times_two() # fine
0 14
1 16
2 18
dtype: int64
>>>
>>> data = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=list('ABC'))
>>> data['D'] = subclass
>>> type(data['D']) # not good
<class 'pandas.core.series.Series'>
>>> data['D'].times_two() # not good
Traceback (most recent call last):
...
AttributeError: 'Series' object has no attribute 'times_two'
ich dieses Problem gesehen habe kann vorher #1713 angehoben worden ist, aber ich kann die aktuelle Lösung nicht erkennen. Da es so eine riesige Bibliothek ist, ist es schwierig, den verschiedenen PRs, Doc-Versionen usw. zu folgen. Und die Unterklassen-Mechanik scheint, soweit ich das beurteilen kann, nicht so gut beschrieben().