在yahoo finan的df中对相似值进行分组

2024-06-26 17:10:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的df(尽管它扩展到了整个SP500):

        Sector
Symbol
MMM     XLI
ABT     XLV
ABBV    XLV
ACN     XLK
ATVI    XLK

我的问题是,如何根据扇区将符号分组?例如,当我想访问数据时,我想把所有符号按扇区分组。你知道吗

到目前为止,我已经尝试了:

sector_list = list(df[df['Sector']=='XLV'].index)

这是可行的,但一次只对一个扇区有效。我想同时计算所有10个行业的回报率,所以我需要一个可以一次返回所有行业的公式,按行业分组


Tags: df符号symbollistsp500行业sectormmm
1条回答
网友
1楼 · 发布于 2024-06-26 17:10:05

^{}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从索引值,然后^{}Sector创建list^{}从列Symbol按每组创建list

s = df.reset_index().groupby('Sector')['Symbol'].apply(list)
print(s)
Sector
XLI          [MMM]
XLK    [ACN, ATVI]
XLV    [ABT, ABBV]
Name: Symbol, dtype: object

相关问题 更多 >