从tushare pro获取上证指数内成分股权重排序分出等级

import tushare as ts
import pandas as pd
import numpy as np
import datetime
from dateutil.relativedelta import relativedelta

today = datetime.datetime.today().strftime('%Y%m%d')    #获取今天的年月日
last_mon = datetime.datetime.today() - relativedelta(months=1)   #获取前一月的日期
last_mon = last_mon.strftime('%Y%m%d')   # 转换成STR

ts.set_token('you token')
pro=ts.pro_api()

df = pro.index_weight(index_code = '000001.SH', start_date = last_mon, end_date = today)
df = df.sort_values(by = 'weight').reset_index()  #权重按照升序排列  复位索引

df = df.drop(columns = ['index'])       # 删除原索引
num = int(len(df[['weight']])/10)

frist_min = df.iloc[num*0:num*1]
frist_min_list = frist_min[['con_code'][0]].tolist()  #将DataFrame 一列转换成列表

print(frist_min_list)

second = df.iloc[num*1:num*2]
three = df.iloc[num*2:num*3]
four = df.iloc[num*3:num*4]
five = df.iloc[num*4:num*5]
five_list = five[['con_code'][0]].tolist()  #将DataFrame 一列转换成列表
print(five_list)

six = df.iloc[num*5:num*6]
seven = df.iloc[num*6:num*7]
eight = df.iloc[num*7:num*8]
nine = df.iloc[num*8:num*9]
ten_max = df.iloc[num*9:num*10]
ten_max_list = ten_max[['con_code'][0]].tolist()  #将DataFrame 一列转换成列表
print(ten_max_list)

输出结果为:
print(frist_min_list)对应如下:
[‘900904.SH’, ‘900922.SH’, ‘900918.SH’, ‘900940.SH’, ‘900953.SH’, ‘900952.SH’, ‘900945.SH’, ‘900919.SH’, ‘900939.SH’, ‘900943.SH’, ‘900927.SH’, ‘900924.SH’, ‘900913.SH’, ‘900921.SH’, ‘900915.SH’, ‘900916.SH’, -snip- ‘603099.SH’, ‘600287.SH’, ‘603607.SH’, ‘603603.SH’, ‘603918.SH’, ‘600844.SH’, ‘603657.SH’]

print(five_list)对应如下:
[‘600975.SH’, ‘600983.SH’, ‘600668.SH’, ‘603180.SH’, ‘603358.SH’, ‘600676.SH’, ‘601700.SH’, ‘600169.SH’, ‘600825.SH’, ‘600826.SH’, ‘600831.SH’, ‘600114.SH’, ‘603220.SH’, ‘600593.SH’, ‘600686.SH’, ‘600851.SH’,
‘601588.SH’, ‘600108.SH’, ‘603655.SH’, ‘688030.SH’, ‘600888.SH’, ‘600861.SH’, ‘688003.SH’, ‘600569.SH’, ‘603367.SH’, ‘603728.SH’, ‘600199.SH’, ‘600939.SH’, ‘601388.SH’, ‘603528.SH’]

print(ten_max_list)对应如下:
[‘600674.SH’, ‘601021.SH’, ‘601108.SH’, ‘601231.SH’, ‘603816.SH’, ‘601990.SH’, ‘600872.SH’, ‘600352.SH’, ‘600111.SH’, ‘600161.SH’, ‘601618.SH’, ‘603338.SH’, ‘600132.SH’, ‘601865.SH’, ‘600079.SH’, ‘600023.SH’, -snip-
‘601816.SH’, ‘600000.SH’, ‘600104.SH’, ‘600030.SH’, ‘601088.SH’, ‘601658.SH’, ‘601888.SH’, ‘600028.SH’, ‘601166.SH’, ‘600900.SH’, ‘600276.SH’]

### 使用 Tushare 获取上证指数数据的方法 在使用 Tushare获取上证指数(SSE Composite Index,代码为 `000001.SH`)的数据时,需要确保已正确安装并配置 Tushare 库[^2]。以下是一个完整的流程及代码示例: 1. **检查 Tushare 版本**:确保当前使用的 Tushare 库版本是最新的,可以通过运行命令 `pip show tushare` 查看版本信息。如果版本过低,可以使用命令 `pip install tushare --upgrade` 进行升级[^2]。 2. **获取 Token 并设置**:Tushare 的部分数据接口需要 Token 才能访问。请登录 Tushare 官网(https://tushare.pro),在“用户中心”中获取 Token 凭证,并通过以下方式设置: ```python import tushare as ts ts.set_token('你的TOKEN凭证') pro = ts.pro_api() ``` 3. **调用接口获取数据**:上证指数的历史行情数据可以通过 `pro.daily` 接口获取。例如,获取上证指数(代码为 `000001.SH`)的历史日线数据: ```python df = pro.daily(ts_code='000001.SH', start_date='20230101', end_date='20231231') print(df) ``` 上述代码中,`ts_code='000001.SH'` 表示上证指数的代码,`start_date` 和 `end_date` 分别表示数据的时间范围[^3]。 4. **数据处理与分析**:获取到的数据可以进一步进行清洗、可视化或分析。例如,绘制收盘价的趋势图: ```python import matplotlib.pyplot as plt df['trade_date'] = pd.to_datetime(df['trade_date']) # 转换日期格式 df.sort_values(by='trade_date', inplace=True) # 按日期排序 plt.plot(df['trade_date'], df['close']) plt.title('上证指数收盘价趋势') plt.xlabel('日期') plt.ylabel('收盘价') plt.show() ``` 通过以上步骤,可以成功获取并分析上证指数的历史数据[^1]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhaojieming1990

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值