2016-06-19 26 views
9

Używam pandy qcut Aby podzielić niektóre dane na 20 pojemników w ramach przygotowania danych dla szkolenia binarnym modelu klasyfikacyjnego tak:Stosowanie pandy qcut pojemniki do nowych danych

data['VAR_BIN'] = pd.qcut(cc_data[var], 20, labels=False) 

Moje pytanie brzmi, w jaki sposób Stosuję tę samą logikę binningową wywodzącą się z powyższej instrukcji qcut do nowego zestawu danych, np. W celu sprawdzenia poprawności modelu. Czy istnieje prosty sposób na zrobienie tego?

Dzięki

Odpowiedz

8

Można to zrobić przekazując retbins=True.

Rozważmy następujący DataFrame:

import pandas as pd 
import numpy as np 
prng = np.random.RandomState(0) 
df = pd.DataFrame(prng.randn(100, 2), columns = ["A", "B"]) 

pd.qcut(df["A"], 20, retbins=True, labels=False) zwraca parę, której drugi element pojemniki. Więc można zrobić:

ser, bins = pd.qcut(df["A"], 20, retbins=True, labels=False) 

ser jest kategoryczny seria i bins są punkty przerwie. Teraz możesz przekazywać pakiety do pd.cut, aby zastosować tę samą grupę do innej kolumny:

pd.cut(df["B"], bins=bins, labels=False, include_lowest=True) 
Out[38]: 
0  13 
1  19 
2  3 
3  9 
4  13 
5  17 
...