按多列查询数据框?

时间:2016-11-20 01:35:25

标签: python pandas data-manipulation

我无法弄清楚这个错误。

df.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1048575 entries, 1966-03-31 to 1994-03-31
Data columns (total 24 columns):
gvkey         1048575 non-null int64
tic           1048575 non-null object

df.query('(gvkey==1690) & (mkt_val> 400)')['2015-03-31':]

              gvkey   tic       conm   mkt_val>
datadate                                                                       
2015-03-31    1690  AAPL  APPLE INC     600
.
.
.

如您所见,有一个列'tic',以及一个值'AAPL'。那么,为什么以下查询返回错误?它与上述查询几乎不一样吗?

df.query('(tic=='AAPL') & (mkt_val> 400)')['2015-03-31':]

  File "<ipython-input-386-34ae806044b9>", line 1
    df.query('(tic=='AAPL') & (mkt_val> 400)')['2015-03-31':]
                        ^
SyntaxError: invalid syntax

一般来说,我有这个大数据集,日期列作为索引。我总是需要通过不同的标准查询不同的公司(tic)(在这种情况下mkt_val> 400)。基于多个标准进行索引时,我总是感到困惑。我应该使数据集多索引(按日期和tic)。这会让我的工作更轻松吗?

1 个答案:

答案 0 :(得分:3)

试试这个兄弟

'(tic=="AAPL")

请注意我如何使用"不要将Python与'

混淆