2015-12-11 97 views
2

如何使用符號列進行過濾?符號列包含類型的對象:zipline.assets._assets.Equity如何通過熊貓數據框中的對象屬性進行過濾

我能夠打印使用符號:

print df.iloc[0][1].symbol

     date    symbol pension mutual 
0 2013-12-31 00:00:00+00:00 Equity(45971 [AAL]) 14353441 27482858 
1 2014-03-31 00:00:00+00:00 Equity(45971 [AAL]) 9386708 46218086 
2 2014-06-30 00:00:00+00:00 Equity(45971 [AAL]) 8988341 61937025 
3 2014-09-30 00:00:00+00:00 Equity(45971 [AAL]) 9699814 77006037 
4 2014-12-31 00:00:00+00:00 Equity(45971 [AAL]) 12409152 81555692 

回答

1

你必須使用申請。這裏的一個玩具例如:

class Foo(): 
    def __init__(self, a): 
     self.a = a 
    def __repr__(self): 
     return "Foo({})".format(self.a) 

In [11]: df = pd.DataFrame([[Foo(1), 1], [Foo(1), 2], [Foo(2), 3]]) 

In [12]: df 
Out[12]: 
     0 1 
0 Foo(1) 1 
1 Foo(1) 2 
2 Foo(2) 3 

In [13]: g = df.groupby(df[0].apply(lambda x: x.a)) # Note: x is of type Foo 

這些富a屬性是每個組的名稱屬性(鍵)。
因此,我們可以使用該過濾器:

In [14]: g.filter(lambda x: x.name == 1) 
Out[14]: 
     0 1 
0 Foo(1) 1 
1 Foo(1) 2 
相關問題