trotz mindestens twogood Tutorials zu sein, wie man Index ein Datenrahmen in pandas
der Python-Bibliothek, ich kann immer noch nicht über eine elegante Art und Weise von SELECT
trainiert mehr als eine Spalte ing auf.Python Pandas: Boolean Indizierung auf mehreren Spalten
>>> d = pd.DataFrame({'x':[1, 2, 3, 4, 5], 'y':[4, 5, 6, 7, 8]})
>>> d
x y
0 1 4
1 2 5
2 3 6
3 4 7
4 5 8
>>> d[d['x']>2] # This works fine
x y
2 3 6
3 4 7
4 5 8
>>> d[d['x']>2 & d['y']>7] # I had expected this to work, but it doesn't
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Ich habe festgestellt (was ich denke, ist) eine ziemlich unelegant Art und Weise tun, wie dies
>>> d[d['x']>2][d['y']>7]
Aber es ist nicht schön, und es Partituren ziemlich niedrig, um die Lesbarkeit (glaube ich).
Gibt es einen besseren, python-tastischen Weg?
dies funktioniert, aber endet mit Python-Operatoren (anstatt numpy) und so wird viel langsamer sein – Jeff
das ist eine nette Lösung. Ich mag die Tatsache, dass explizit 'und' verwendet wird. Stellt klar, dass zwei Bedingungen ausgewertet werden. – LondonRob
Oh, ich habe gerade [ein Duplikat] (http://stackoverflow.com/questions/8916302/selecting-across-multiple-columns-with-python-pandas) dieser Frage gefunden. Hoppla. – LondonRob