So habe ich eine Datenrahmen wie folgt aus:Pandas Zeilenbeschriftungen in boolean Indizierung
df = pd.DataFrame(np.random.randn(6, 3), columns=['a', 'b', 'c'])
a b c
0 1.877317 0.109646 1.634978
1 -0.048044 -0.837403 -2.198505
2 -0.708137 2.342530 1.053073
3 -0.547951 -1.790304 -2.159123
4 0.214583 -0.856150 -0.477844
5 0.159601 -1.705155 0.963673
Wir indizieren boolean kann wie folgt
df[df.a > 0]
a b c
0 1.877317 0.109646 1.634978
4 0.214583 -0.856150 -0.477844
5 0.159601 -1.705155 0.963673
Wir können es auch über die Zeilen Labels wie dies in Scheiben schneiden:
df.ix[[0,2,4]]
a b c
0 1.877317 0.109646 1.634978
2 -0.708137 2.342530 1.053073
4 0.214583 -0.856150 -0.477844
ich möchte diese beiden Operationen zur gleichen Zeit tun (So vermeide ich eine unnötige Kopie machen nur die Zeile Etikett f zu tun ilter). Wie würde ich es machen?
Pseudo-Code für das, was ich suche:
df[(df.a > 0) & (df.__index__.isin([0,2,4]))]
Sie mit 'df.ix versuchen [df [ 'a']> 0 [ 0,2,4]] ' – nemesv
Für das obige Beispiel Datenrahmen, der eine Ausnahme werfen würde, da dies versucht, die 0, 2 und 4 Spalten zu ziehen, und wir nur 3 Spalten haben. – jason