2016-12-18 3 views
1

Ich habe einen Datenrahmen mit Spalt würde Ich mag einen Multi-Index machen, indem die wie bewertet Einträge in einer Spalte GruppierungSet Muti-Index von Spaltenwert

A a 3 
B c 2 
A d 1 
A e 4 
B a 5 

A a 3 
    d 1 
    e 4 
B c 2 
    a 5 

Antwort

2

wird Sie kann den Index als die ersten beiden Spalten festlegen und dann sortieren.

# create data 
df = pd.DataFrame({'col1': {0: 'A', 1: 'B', 2: 'A', 3: 'A', 4: 'B'}, 
        'col2': {0: 'a', 1: 'c', 2: 'd', 3: 'e', 4: 'a'}, 
        'col3': {0: 3, 1: 2, 2: 1, 3: 4, 4: 5}}) 
# set and sort index 
df.set_index(['col1', 'col2']).sort_index(level=['col1', 'col2']) 

Ausgabe

  col3 
col1 col2  
A a  3 
    d  1 
    e  4 
B a  5 
    c  2 
0

Sie verwenden groupby mit Aggregatfunktion nur:

df = df.groupby(['1', '2']).sum() 

Gerade 1 und 2 mit Spaltennamen ändern.

1

Aus Gründen der widerwärtig zu sein und die Bereitstellung eine Antwort ohne Hinweis auf die Spaltennamen, weil keine

df.set_index(pd.MultiIndex.from_arrays(df.values[:, :2].T)).iloc[:, -1].sort_index() 

A a 3 
    d 1 
    e 4 
B a 5 
    c 2 
dtype: int64 

gegeben, die besagten, bitte @ Antwort des TedPetrou holen.

Verwandte Themen