2016-11-03 5 views
0

Ich habe einen Datenrahmen, der wie dieseAbteilung mit Multiindex Dataframes

data = {'0': {('Field A', '0'): 10, 
       ('Field A', '1'): 10, 
       ('Field A', '2'): 10, 
       ('Field B','0'): 6, 
       ('Field B','1'): 6, 
       ('Field B', '2'): 6}, 
     '48': {('Field A', '0'): 5, 
       ('Field A', '1'): 2, 
       ('Field A', '2'): 1, 
       ('Field B', '0'): 3, 
       ('Field B', '1'): 2, 
       ('Field B', '2'): 1}} 

df = pd.DataFrame(data) 
df.index.names = ['field', 'well'] 
df.T.index.names = ['interval'] 

print(df) 

    interval       0 48 
    field      well   
    field A     0  10 5 
           1  10 2 
           2  10 1 
    field B     0  6 3 
           1  6 2 
           2  6 1 

sieht Ich versuche, herauszufinden, wie die Spalten alle elementweise dividieren durch die Spalte „Interval 0“.

sollte das Ergebnis sein:

interval       0  48 
field      well    
Total Number of End Points 0  1.0 0.500000 
          1  1.0 0.200000 
          2  1.0 0.100000 
Total Vessel Length  0  1.0 0.500000 
          1  1.0 0.333333 
          2  1.0 0.166667 
+0

Ihre 0 Spalte geteilt durch sich selbst, während 48 Spalte ist 0 Spalte geteilt durch 48 Spalte. Ist das, was Sie beabsichtigt? – Psidom

+0

@psidom Sorry nicht so kompliziert. Mein Beispiel Ergebnis ist falsch. Sowohl Spalte 0 und Spalte 48 sollten durch Spalte 0 geteilt werden. Ich bin ein Bon Eehe. Ich werde das Beispiel beheben. – agf1997

Antwort

1

Sie div() Methode (wie bei divide() mit dem Parameter axis Satz als 0 verwenden können entlang der Reihe elementweise Division auszuführen:

df.div(df['0'], axis = 0) 

#interval   0  48 
#field well  
#Field A 0 1.0 0.500000 
#   1 1.0 0.200000 
#   2 1.0 0.100000 
#Field B 0 1.0 0.500000 
#   1 1.0 0.333333 
#   2 1.0 0.166667 
Verwandte Themen