2016-04-21 17 views
0

erwartet ich die folgende Schnitt auf einem Datenrahmen:Pandas' Schnitt funktioniert nicht wie

df['Age_Groups'] = pd.cut(df.Age, [0, 60, 120, 240, 360, 480, 600, 720, 940], 
           labels=['0-5', '5-10', '11-20', '21-30', '31-40', '41-50', '51-60', '> 60']) 

Bedeutet dies, dass 0 bis 60 Werte sind enthalten in ‚0-5‘? Ist beispielsweise 60 ausgeschlossen oder wird in 0-5 beispielsweise Null ausgeschlossen?

Antwort

1

Sie müssen Ihre Behälter auf die Etiketten übereinstimmen:

df['Age_Groups'] = pd.cut(df.Age, [0,6,10], labels=['0-5', '6-10'],right=False) 

"""         
    Age Age_Groups 
0  0  0-5 
1  1  0-5 
2  2  0-5 
3  3  0-5 
4  4  0-5 
5  5  0-5 
6  6  6-10 
7  7  6-10 
8  8  6-10 
9  9  6-10 
10 10  NaN 
""" 

From the docs, links Grenzen standardmäßig ausgeschlossen, rechts enthalten:

rechts: Bool, optional Gibt an, ob die Behälter umfassen die ganz rechts oder nicht. Wenn es richtig == True (Standard), dann die Behälter [1,2,3,4] anzuzeigen (1,2], (2,3], (3,4].

Hier (right = False) 0,6 ist im Gegenteil [,6).

Verwandte Themen