Mein Ziel ist es, die pct_change
für zwei Zeilen innerhalb eines (2, 2) Multi-Index-Datenrahmens zu berechnen, aber ich möchte die pct_change
Zeile unter den anderen zwei Zeilen erscheinen. Ich weiß über pct_change()
Methode, aber das macht keine neue Zeile, stattdessen bin ich compact die pct_change als separate Datenrahmen und Anhängen der Zeile pct_change
an einen vorhandenen Datenrahmen. Hier ist ein Beispieldatenrahmen.Python Pandas Multi-Index: Umbenennen bestimmter Index Zeile Wert
df = pd.DataFrame(data={
'A': [94128, 28198, -70.04], 'B': [3627, 1483, -59.11]},
index=pd.MultiIndex.from_tuples([('Label', '(Jun 1, 2014-Mar 31, 2015)'),
('Label', '(Jun 1, 2015-Mar 31, 2016)'),
('Label', '(Jun 1, 2015-Mar 31, 2016)')],
names=['Text', 'Period']))
sieht wie folgt aus:
A B
Text Period
Label (Jun 1, 2014-Mar 31, 2015) 94128.00 3627.00
(Jun 1, 2015-Mar 31, 2016) 28198.00 1483.00
(Jun 1, 2015-Mar 31, 2016) -70.04 -59.11
Dies ist ein Multi-Index und ich möchte die letzte Period
Zeilenwert umbenennen % Change
zu sagen.
gewünschte Ausgabe:
A B
Text Period
Label (Jun 1, 2014-Mar 31, 2015) 94128.00 3627.00
(Jun 1, 2015-Mar 31, 2016) 28198.00 1483.00
% Change -70.04 -59.11
Ist das, was angesichts seiner Multi-Index Komplexität Ich versuche sogar möglich, zu tun?
>>> df.index
MultiIndex(levels=[['Label'], ['(Jun 1, 2014-Mar 31, 2015)', '(Jun 1, 2015-Mar 31, 2016)']],
labels=[[0, 0, 0], [0, 1, 1]],
names=['Text', 'Period'])
Awesome! Ich musste 'list (zip (...))' für Python 3) verwenden, aber Ihr Ansatz ist sehr sinnvoll. Take-away bedeutet also, einen ganz neuen Index zu erstellen, der den Wert% Change enthält, und dann den aktuellen Multi-Index mit dem new_index zu ersetzen. – Jarad