2016-09-19 1 views
0

Ich möchte bestimmte Spalten in meinem Pandas Datenrahmen zu standardisieren.Pandas Operationen auf ausgewählten Spalten

dfTest = pd.DataFrame({ 
      'A':[14.00,90.20,90.95,96.27,91.21], 
      'B':[103.02,107.26,110.35,114.23,114.68], 
      'C':['big','small','big','small','small'] 
     }) 

Dies funktioniert nicht, da nur ein einzelner Index festgelegt werden kann. Falls nur eine einzige Spalte wie ‚A‘ ausgewählt sklearn mehrere deprecation Warnungen

scaler = StandardScaler() 
dfTest['A_scaled', 'B_scaled'] = scaler.fit_transform(dfTest[['A', 'B']]) 
dfTest 

Wie kann ich so etwas erreichen aussendet?

+0

Leider meinen Sie 'dfTest [[ 'A_scaled', 'B_scaled']] = scaler.fit_transform (dfTest [['A', 'B']]) '? – EdChum

+0

oder vielleicht im allgemeinen Fall 'dfTest [['A', 'B']]. Apply (scaler.fit_transform)' – EdChum

+0

In der Tat, was ich wirklich möchte, dass die Spalte 'A' durch die neu erstellte skalierte Spalte ersetzt wird. –

Antwort

1

Sie könnten die skalierten Spalten auf den ursprünglichen DF verketten, wie gezeigt:

scaler = StandardScaler() 
scaled_data = pd.DataFrame(data=scaler.fit_transform(dfTest[['A', 'B']]), 
          columns=['A_scaled', 'B_scaled']) 

pd.concat([dfTest, scaled_data], axis=1) 

Image

Verwandte Themen