【Python技术】同花顺wencai涨停数据用pandas进行详细数据分析

前2天写的一篇文章【Python技术】使用同花顺wencai抓取、pandas分析涨停数据 , 貌似关注度还可以。 但关注度越高越感到惭愧,细想了下,文章里涨停分析得有点草率, 文章不能不专业,这里准备继续用pandas来点详细数据分析。

本文具体讲下怎么通过代码 来详细分析,先讲下思路。

1、从问财接口获取符合特定条件的涨停股票数据,并按成交金额降序排列,将数据写入Excel文件,选择想要的指定列并根据连续涨停天数降序排序。这一步也是上一篇文章的主要内容。

2、从涨停原因类别中通过+分隔符分析涨停原因类别,统计各概念出现次数。计算每只股票的主要涨停原因及其出现次数。

3、最后根据主要涨停原因出现次数、涨停原因、连续涨停天数再次排序,并重新输出至Excel文件。

下面是具体的Python代码, 代码还是在上次的代码基础上追加逻辑。

import pywencai
import xlsxwriter
import pandas as pd

# 列名与数据对其显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)

pd.set_option('display.max_rows', None)  # 设置显示无限制行
pd.set_option('display.max_columns', None)  # 设置显示无限制列

pd.set_option('display.expand_frame_repr', False) #设置不折叠数据
pd.set_option('display.max_colwidth', 100)


date ="20240823"
param = "{date}涨停,非涉嫌信息披露违规且非立案调查且非ST,非科创板,非北交所"
df = pywencai.get(query= param ,sort_key='成交金额', sort_order='desc')


spath = f"./{date}涨停wencai.xlsx"
#print(df)
df.to_excel(spath, engine='xlsxwriter')

selected_columns = ['股票代码', '股票简称', '最新价','最新涨跌幅', '首次涨停时间['+date + ']', '连续涨停天数['+date + ']','涨停原因类别['+date + ']','a股市值(不含限售股)['+date + ']','涨停类型['+date + ']']
jj_df = df[selected_columns]
#print(jj_df)

# # 按照'连板数'列进行降序排序
sorted_temp_df = jj_df.sort_values(by='连续涨停天数['+date + ']', ascending=False)
# 输出排序后的DataFrame
#print(sorted_temp_df)
#sorted_temp_df_path = f"./{date}涨停排序wencai.xlsx"
#sorted_temp_df.to_excel(sorted_temp_df_path, engine='xlsxwriter')


# 按照 '+' 分割涨停原因类别
concepts = sorted_temp_df['涨停原因类别['+date+']'].str.split('+').explode().reset_index(drop=True)

# 统计每个概念的出现次数
concept_counts = concepts.value_counts().reset_index()
concept_counts.columns = ['概念', '出现次数']

# 输出结果
print(concept_counts)

# 获取每个股票的主要涨停原因
sorted_temp_df['涨停主要原因'] = sorted_temp_df['涨停原因类别['+date+']'].apply(
    lambda x: concept_counts.loc[concept_counts['概念'].isin(x.split('+'))]['概念'].iloc[0]
    if len(x.split('+')) > 0 else None
)
sorted_temp_df['涨停主要原因出现次数'] = sorted_temp_df['涨停主要原因'].map(concept_counts.set_index('概念')['出现次数'])

# 根据涨停主要原因出现次数和连续涨停天数排序
sorted_final_df = sorted_temp_df.sort_values(by=['涨停主要原因出现次数','涨停主要原因', '连续涨停天数['+date + ']'], ascending=[False, True, False])


# 输出结果
print(sorted_final_df)
sorted_final_df_path = f"./{date}涨停排序wencai.xlsx"
sorted_final_df.to_excel(sorted_final_df_path, engine='xlsxwriter')

最后看下实际效果

a、这个是涨停及出现次数的截图

在这里插入图片描述

b、最后导出的内容

在这里插入图片描述

从上面的截图可以看到, 涨停概念集中在 华为、华为海思、西部大开发、鸿蒙概念,半年度增长等了。 从之前的华为海思 逐渐发散炒作 华为、鸿蒙等, 西部大开发是下午的临时消息刺激。另外8月底到半年度披露期了,半年度增长也得重视了。

昨天写了篇AI绘画相关的文章,感觉大家不是太感兴趣。 在人工智能时代, AI 真的需要重视起来,其实我上面写的代码基本是借助AI 提示词来完成的。 能节省脑力 何乐而不为呢?

原文链接:【Python技术】同花顺wencai涨停数据用pandas进行详细数据分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值