Select 来自使用多列的 pandas 数据框

Select from panadas dataframe using multiple columns

我有以下数据框:

              Date  Adj Close
Ticker                       
ZTS     2014-12-22      43.41
ZTS     2014-12-19      43.51
ZTS     2014-12-18      43.15
ZTS     2014-12-17      41.13

除了 ZTS 之外还有更多的代码,它会继续更多行。

我想 select 同时使用 Ticker 和 Date,但我不知道该怎么做。我想 select 就像我在 SQL 中说的那样:

Select 'Adj Close' from prices where Ticker = 'ZTS' and 'Date' = '2014-12-22'

谢谢!

我想出了将 Ticker 分成子数据框的方法,然后按日期索引,然后 select 按日期索引。但我仍然想知道是否有更有效的方法。

cur_df =  df.ix['A']
cur_df = cur_df.set_index(['Date'])
print cur_df['Adj Close']['2014-11-20']
>>> import pandas 
>>> from pandas import *

>>> L = [['2014-12-22',43.41],['2014-12-19',43.51],['2014-12-18',43.15], ['2014-12-17',41.13]]
>>> C = ['ZTS', 'ZTS','ZTS','ZTS']

>>> df = DataFrame(L, columns=['Date','Adj Close'], index=[C])
>>> df
           Date  Adj Close
ZTS  2014-12-22      43.41
ZTS  2014-12-19      43.51
ZTS  2014-12-18      43.15
ZTS  2014-12-17      41.13

>>> D1 = df.ix['ZTS'][df['Date']=='2014-12-22']['Adj Close']
>>> D1
ZTS    43.41

以下应该有效:

df[(df['Date'] == '2014-12-22') & (df.index == 'ZTS')]['Adj Close']

这里我们必须使用数组 & 运算符而不是 and 并且由于运算符优先级,您必须使用括号