41

Python のライブラリに DataFrame のインデックスを作成する方法について少なくとも2 つの 優れたチュートリアルがあるにもかかわらずpandas、私はまだSELECT複数の列を ing する洗練された方法を見つけることができません。

>>> 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()

このように、かなり洗練されていない方法を見つけました(私が思うに)

>>> d[d['x']>2][d['y']>7]

しかし、それはきれいではなく、可読性の点でかなり低いスコアです (私は思います)。

より良い、より Python-tastic な方法はありますか?

4

2 に答える 2

1

まだまだいい方法があるかもしれませんが、

In [56]: d[d['x'] > 2] and d[d['y'] > 7]
Out[56]: 
   x  y
4  5  8

動作します。

于 2013-06-20T14:33:44.630 に答える