我有以下数据框:
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之外,还有更多的代码,它还会延续更多的行。
我想选择使用Ticker和Date,但我无法弄清楚如何。我想选择好像我在SQL中说:
Select 'Adj Close' from prices where Ticker = 'ZTS' and 'Date' = '2014-12-22'
谢谢!
答案 0 :(得分:0)
>>> 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
答案 1 :(得分:0)
以下内容应该有效:
df[(df['Date'] == '2014-12-22') & (df.index == 'ZTS')]['Adj Close']
这里我们必须使用数组&
运算符而不是and
,因为运算符优先级必须使用括号
答案 2 :(得分:-1)
我已经想出将Ticker分成一个子集数据帧,然后按日期索引,然后按日期选择。但我仍然想知道是否有更有效的方法。
cur_df = df.ix['A']
cur_df = cur_df.set_index(['Date'])
print cur_df['Adj Close']['2014-11-20']