我有一个看起来像这样的df(虽然它扩展到整个SP500):
Sector
Symbol
MMM XLI
ABT XLV
ABBV XLV
ACN XLK
ATVI XLK
我的问题是,如何根据扇区将符号组合在一起?例如,当我想访问数据时,我希望按扇区分组所有符号。
到目前为止,我已经尝试过:
sector_list = list(df[df['Sector']=='XLV'].index)
这有效,但一次仅适用于一个扇区。我想同时计算所有10个扇区的回报,所以我需要一个可以一次性返回所有扇区的等式,按扇区分组
答案 0 :(得分:2)
将groupby
与apply
一起使用,并将所有索引值转换为list
:
s = df.groupby('Sector').apply(lambda x: x.index.tolist())
print (s)
Sector
XLI [MMM]
XLK [ACN, ATVI]
XLV [ABT, ABBV]
dtype: object
或来自索引值的Symbol
列,reset_index
,然后Sector
list
,Symbol
每列s = df.reset_index().groupby('Sector')['Symbol'].apply(list)
print(s)
Sector
XLI [MMM]
XLK [ACN, ATVI]
XLV [ABT, ABBV]
Name: Symbol, dtype: object
div
{ {3}}:
<div id="main">
<div id="internal">
<span>Text in yellow color</span>
</div>
</div>