2016-12-23 6 views
0

Ich mag Attribute zu Pandas DataFrame Spalten hinzufügen, zum Beispiel Etiketten oder Einheiten zu verwalten.verloren Attribut nach Hinzufügen von Spalte zu Pandas DataFrame

df = pd.DataFrame([[1, 2], [5, 6]], columns=['A', 'B']) 
df['A'].units = 'm/s' 

die Einheiten des Spalts Aufruf (mit df['A'].units) gibt m/s.

jedoch wird das Attribut nach jedem Datenrahmen auf Serienbetrieb verloren, wie eine neue Spalte hinzu:

df['C'] = [3, 8] 
df['A'].units 

AttributeError: 'Series' object has no attribute 'units'

Gibt es einen Ansatz, um die Attribute oder eine Alternative zu halten Spalten hinzufügen?

+3

Ja! Erstellen Sie Ihre eigene Klasse mit dem DataFrame als Attribut Ihrer Klasse. Verwalten Sie alle Spaltenattribute in Ihrer Klasse. – piRSquared

+0

@piRSquared, könnten Sie ein explizites Beispiel geben? Ich möchte den Datenrahmen zurückgeben, wenn das Objekt selbst aufgerufen wird ... – API

Antwort

1

_metadata, ist nicht Teil der öffentlichen API. keine stabile Weise, es zu tun, noch, denn jetzt

In [8]: df = pd.DataFrame([[1, 2], [5, 6]], columns=['A', 'B']) 

In [9]: df['A']._metadata 
Out[9]: ['name'] 

In [10]: df['A']._metadata.append({'units': 'm/s'}) 

In [11]: df['C'] = [3, 8] 

In [12]: df['A']._metadata 
Out[12]: ['name', {'units': 'm/s'}] 
+0

Wo finde ich die Dokumentation von '_metadata'? – API

Verwandte Themen