So Benennen Sie Mehrere Spalten auf eine Reset-Index mit Pandas

Ich versuche, herauszufinden, ob es eine Möglichkeit zum umbenennen Pandas Spalten wenn Sie versuchen, den index zurücksetzen. Ich sehe in der Dokumentation, die Sie können verwenden Sie die "name" - parameter legen Sie den Namen der Spalte ein reset index, wenn es nur eine Spalte, aber ich bin neugierig, ob es eine Möglichkeit gibt, dies zu tun für mehrere Spalten.

Beispiel:

df1 = pd.DataFrame({
'A' : ['a1', 'a1', 'a2', 'a3'],
'B' : ['b1', 'b2', 'b3', 'b4'],
'D1' : [1,0,0,0],
'D2' : [0,1,1,0],
'D3' : [0,0,1,1],
})

df1.set_index(['B','A']).stack().reset_index()

Das Ergebnis lässt Sie mit:

Out[82]: 
     B   A level_2  0
0   b1  a1      D1  1
1   b1  a1      D2  0
2   b1  a1      D3  0
3   b2  a1      D1  0
4   b2  a1      D2  1

Könnten Sie tun:

df1.set_index(['B','A']).stack().reset_index(name='my_col')

Werden, um den Namen der letzten Spalte, aber ich Frage mich ob es einen Weg gibt, um den parameter zu verwenden, um den Namen des 'level_2' Spalte als gut.

Das erste, was mir in den Sinn gekommen war, es zu versuchen:

df1.set_index(['B','A']).stack().reset_index(name=['my_col2','my_col'])

Aber das hat nicht funktioniert, also Suche nach einem anderen Weg um. Ich weiß, ich könnte immer nur benennen Sie die Spalten in die nächste Zeile, sondern hatte gehofft, es wäre ein sauberer Weg, es zu tun in einer Zeile.

Dank!
Sam

  • Ich glaube nicht, dass es möglich ist, sehen Sie, reset_index() im code ist eigentlich pandas.pydata.org/pandas-docs/stable/generated/..., so dass Sie nur eine Spalte. Was Sie tun können, ist legen Sie den Namen der Spalten für den index der Reihe, und dann bleiben Sie als Namen der Spalten der DataFrame
InformationsquelleAutor slee | 2014-12-05
Schreibe einen Kommentar