2016-05-08 7 views
2

Ich habe folgende DatenrahmenAuswählen der Werte der ersten Reihe in pandas Datenrahmen

    AAPL   F  IBM 
    Date    
    2016-05-02 46.536664 13.62 143.881476 
    2016-05-03 47.302004 13.43 142.752373 
    2016-05-04 46.810001 13.31 142.871221 
    2016-05-05 46.619999 13.32 145.070003 
    2016-05-06 46.360000 13.44 147.289993 

Id mag jede Spalte durch den Wert der ersten Reihe und der mehrfach zu unterteilen mit 100. Nach der Berechnung die ersten 2 Zeilen sollten so aussehen:

   AAPL   F  IBM 
    Date 
    2016-05-02 100   100  100 
    2016-05-03 101.63  98.60  99.21 

Ich kämpfe, aber ich kann es nicht bekommen. Jede Hilfe willkommen

Antwort

4

versuchen, etwas wie folgt aus:

df /= df.iloc[0]/100 

oder

df = df.apply(lambda x: x/x.iloc[0]*100) 

Test:

In [51]: df 
Out[51]: 
       AAPL  F   IBM 
Date 
2016-05-02 46.536664 13.62 143.881476 
2016-05-03 47.302004 13.43 142.752373 
2016-05-04 46.810001 13.31 142.871221 
2016-05-05 46.619999 13.32 145.070003 
2016-05-06 46.360000 13.44 147.289993 

Ausgang:

In [63]: df /= df.iloc[0]/100 

In [64]: df 
Out[64]: 
        AAPL   F   IBM 
Date 
2016-05-02 100.000000 100.000000 100.000000 
2016-05-03 101.644596 98.604993 99.215255 
2016-05-04 100.587358 97.723935 99.297856 
2016-05-05 100.179074 97.797357 100.826046 
2016-05-06 99.620377 98.678414 102.368976 
+0

Es scheint nicht zu funktionieren. Ich erhalte die folgende Nachricht: TypeError: ("Indizierung auf mit diesen Indexern [0] von nicht möglich", "trat bei Index AAPL auf") – vsoler

+0

@vsoler, Ich habe meine Antwort aktualisiert - '.loc' in' .iloc' geändert - es sollte funktionieren – MaxU

+0

Jetzt funktioniert es, danke – vsoler

Verwandte Themen