Ich möchte diese Pivot-Tabelle glätten, aber ich bin nicht in der Lage, eine Möglichkeit zu finden, die multi-indizierte Reihe von "ID" zu entfernen/zu verbergen/zu löschen.Wie flachte ich eine Python/Pandas Pivot-Tabelle ab und manipuliere die Spaltennamen?
Relevant Code:
df = df [['B1','B2','B3','B4']]
df = pd.pivot_table(df,values=['BUCKET'],index=['ID'],columns=['TYPE'],aggfunc=len,fill_value='',margins=True)
Was ergibt:
BUCKET
TYPE B1 B2 B3 B4
ID
1 236 data1 data2 data3
2 323 data4 data5 data3
3 442 data6 data2 data4
4 543 data8 data2 data3
5 676 data1 data8 data4
Die folgende Zeile mich näher ein Schritt wird durch die erste Reihe dropping
df.columns = df.columns.droplevel(0)
Was ergibt:
TYPE B1 B2 B3 B4
ID
1 236 data1 data2 data3
2 323 data4 data5 data3
3 442 data6 data2 data4
4 543 data8 data2 data3
5 676 data1 data8 data4
ich brauche, um die Pivot-Tabelle abzuflachen und die „TYPE“ Zeilenkopf entfernen, ersetzen Sie es mit „ID“ und verstecken/Drop die vorherigen „ID“ Zeile, so dass es säubert aussehen und ordentlich wie das ist:
ID B1 B2 B3 B4
1 236 data1 data2 data3
2 323 data4 data5 data3
3 442 data6 data2 data4
4 543 data8 data2 data3
5 676 data1 data8 data4
Ich habe versucht, die Spalten/Zeilen mit diesen manipulieren, aber ohne Erfolg ... Vorschläge? Vielen Dank!
pd.melt(df,id_vars=['ID'])
results.columns = results.columns.get_level_values(1)
pivot_table.values.reset_index().values.tolist()
'df = df.drop ('spaltenname', 1)'? – eikooc