如何使用符号列进行过滤?符号列包含以下类型的对象: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
最佳答案
你必须使用申请。这是一个玩具示例:
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
这些 Foo
a
属性是每个组的名称属性(键)。因此我们可以使用它进行过滤:
In [14]: g.filter(lambda x: x.name == 1)
Out[14]:
0 1
0 Foo(1) 1
1 Foo(1) 2
关于python - 如何按 Pandas 数据框中的对象属性进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34233094/