python 分析A股近一个月热度


前言:

需要我们分析近一个月行业热度,并给每个出现过的行业打分。具体思路如下:

获取最近一个月的数据:使用 Tushare 提供的 hsgt_top10 接口获取近一个月内每日前十大成交明细数据。

获取行业信息:使用 Tushare 提供的 stock_basic 接口获取股票列表,包括股票代码和所属行业等信息。

按行业汇总:将前十大成交明细数据与股票列表进行合并,并按照行业进行汇总,计算每个行业在这段时间内出现的次数和占比。

给每个出现过的行业打分:根据行业出现的次数和占比等因素对每个行业进行打分,制定评分算法。

输出结果:按照得分从高到低排序,并输出结果。

需要注意的是,针对每个行业的打分算法需要考虑多种因素,比如行业的重要性、影响力等因素。同时,在计算行业占比时需要对数据进行一些预处理,比如去除无效数据、处理缺失值等。另外,为了提高代码的可读性和可维护性,我们可以使用 Python 的 pandas 库对数据进行处理和分析。
准备

查询dqnapi接口域名:http://www.dqnapi.com/
在这里插入图片描述

pro.stock_basic dqnapi号:100.3568/2023.1_v1
pro.daily dqnapi号:100.3568/2023.23_v1

python 代码:

import tushare as ts
import pandas as pd

# 获取 Tushare 账户 TOKEN
pro = ts.pro_api(token='')

# 获取股票列表
stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry')

# 设置分析时间段
start_date = '2023-05-15'
end_date = '2023-06-15'

# 获取时间段内每日前十大成交数据,并按照行业汇总
df_top10_list = []
for trade_date in pd.date_range(start=start_date, end=end_date):
    trade_date_str = trade_date.strftime('%Y%m%d')
    df_top10 = pro.hsgt_top10(trade_date=trade_date_str)
    df_top10_merged = pd.merge(df_top10, stock_list, on='ts_code', how='left')
    df_top10_grouped = df_top10_merged.groupby('industry').size().reset_index(name='counts')
    df_top10_grouped['pct'] = df_top10_grouped['counts'] / len(df_top10_merged)
    df_top10_list.append(df_top10_grouped)

# 将行业汇总数据合并,并计算每个行业的得分
df_top10_total = pd.concat(df_top10_list).groupby('industry').agg({'counts': 'sum', 'pct': 'mean'}).reset_index()
df_top10_total['score'] = df_top10_total['counts'] * df_top10_total['pct']

# 按照得分从高到低排序,并输出结果
df_top10_total = df_top10_total.sort_values(by='score', ascending=False)
print(df_top10_total[['industry', 'counts', 'pct', 'score']])

总结

`
| industry counts pct score
20 白酒 57 0.129545 7.384091
19 电气设备 54 0.122727 6.627273
30 银行 33 0.091667 3.025000
27 通信设备 36 0.081818 2.945455
25 软件服务 31 0.086111 2.669444
9 半导体 26 0.081250 2.112500
3 互联网 22 0.078571 1.728571
4 保险 26 0.061905 1.609524
13 旅游服务 22 0.050000 1.100000
15 汽车整车 20 0.050000 1.000000
10 家用电器 15 0.062500 0.937500
0 IT设备 14 0.058333 0.816667
5 元器件 12 0.054545 0.654545
24 证券 12 0.050000 0.600000
18 电器仪表 9 0.050000 0.450000
11 小金属 7 0.058333 0.408333
6 化学制药 7 0.058333 0.408333
29 铜 7 0.050000 0.350000
12 建筑工程 7 0.050000 0.350000
8 医疗保健 4 0.050000 0.200000
1 专用机械 3 0.050000 0.150000
14 水力发电 3 0.050000 0.150000
7 化工原料 2 0.050000 0.100000
22 石油开采 2 0.050000 0.100000
23 船舶 2 0.050000 0.100000
28 铁路 1 0.050000 0.050000
16 煤炭开采 1 0.050000 0.050000
26 运输设备 1 0.050000 0.050000
21 石油加工 1 0.050000 0.050000
17 电信运营 1 0.050000 0.050000
2 乳制品 1 0.050000 0.050000
31 食品 1 0.050000 0.050000| |
|–

    这是一个行业热度分析的输出结果。其中,industry 列是行业名称;counts 表示这个行业在近一个月内出现的次数;pct 是这个行业在所有出现行业中所占的比例;score 是我们为每个行业打的分数。可以看到,白酒、电气设备、银行等行业热度较高,而煤炭开采、运输设备等行业热度较低。这个结果可以帮助投资者了解股市行情和行业走势,做出更加明智的投资决策。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值