Ich bin verwirrt, warum der untenstehende Code nicht funktioniert. Ich habe die Spalte AgeBands
mit der pd.cut
Funktion erstellt, also ist der Typ Kategorie. In der Theorie sollte ich in der Lage sein, mich darauf zu subsettieren, wie ich es in einer String-Spalte tun würde, aber wenn ich versuche, dass der resultierende Datenrahmen new_df
null Zeilen hat. Was vermisse ich?Subset Datenrahmen auf einer Spalte mit Typ = Kategorie
import numpy as np
import pandas as pd
df = pd.DataFrame({'Age' : [22, 38, 26, 35, 35, 65]})
df['AgeBands'] = pd.cut(df['Age'], [0,10,20,30,40,50,max(df['Age'])])
new_df = df[df['AgeBands'] == '(30-40]']
new_df.shape
Wenn df.info()
läuft Ich habe Bestätigung der AgeBands
tatsächlich vom Typ der Kategorie:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 2 columns):
Age 6 non-null int64
AgeBands 6 non-null category
dtypes: category(1), int64(1)
memory usage: 174.0 bytes
Is '(30-40]' eine Regex – Tbaki
@Tbaki - nein, (30-40] der Wert AgeBands hat von pd.cut.Es ist eine Zeichenfolge, aber vielleicht Python sieht es als Regex? Ich werde es untersuchen – BogdanC