df.nlargest(n,列名) DataFrame统计每列排名前3

该博客介绍了如何使用Python DataFrame的nlargest函数,结合resample和agg方法,统计并展示2010年至2021年间各行业板块年度涨幅的前三名。首先计算板块涨幅,接着利用nlargest筛选出每列排名前三的数据,最后处理多层索引和缺失值。
摘要由CSDN通过智能技术生成

假设5个行业板块,统计2010年至2021年,每年行业涨幅前3名的板块

# 获取5个指数收盘价数据
names = ['半导体及元件', '电力', '传媒', '中药', '银行']
def get_pct(lists):
    pct = pd.DataFrame()
    for name in lists:
        # 从接口获取数据
        tmp = ak.stock_board_industry_index_ths(symbol=name).set_index('日期').loc[:, ['收盘价']]
        tmp.index = pd.to_datetime(tmp.index)   # 将日期数据格式改datetime类型,一遍resample处理

        tmp = tmp.loc['2010-01-01':'2021-09-08', :]
        tmp['收盘价'] = tmp['收盘价'].astype(float)   # 将收盘价格式设置为浮点型,以便计算
        tmp = tmp.resample('Y').agg(['first', 'last'])  # 对数据进行重新采样
        # 每年最后一个交易日的收盘价和每年第一个交易日的收盘价进行计算年涨幅
        tmp[name] = ((tmp['收盘价']['last'] - tmp['收盘价']['first']) / tmp['收盘价']['first'] * 100).round(2)
        pct = pct.join(tmp[name
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值