python股票数据简单分析

一、简单说明

1、需求

 2、数据

3、 部分结果

画的图

筛选的股票

 二、学习收获

1、如何将DataFrame列的object类型转为自己需要float类型?

 这里成交量为例子

 转为相应float类型?

具体方法是:

首先先将该字段转换成列表类型,列表中每个元素对应一个字符串;

 

其次在该列的循环中进行字符串切片,把“万”切除;

然后是在循环中将其转换为float类型,添加到列表元素;

要计算均值方差等还要应用到numpy库来计算,列表不支持直接调用std()和mean()等函数。

def trans(list_e):
    c=[]
    for i in list_e:
        c.append(float(i[:-1]))
    return c
np.mean(trans(list(data_shenshi['成交量(手)'])))

2、如何筛选出市盈率高且涨幅也大的股票、市盈率高且跌幅大的股票、市盈率低但涨幅高的股票?

用关系散点图,直接观察图的四个角落,能直观判别筛选。

图的左上角、右上角、右下角数据即为所求。

import seaborn as sns
ax = sns.scatterplot(x='涨跌幅', y='市盈率(动态)', data=df_Data)
plt.title('市盈率和涨跌幅关系散点图')
plt.show()

三、存一下源码

import numpy as np 
import pandas as pd

df_Data=pd.read_excel("gupiao(1).xlsx")
df_Data

a=df_Data.drop(["相关链接","最新价","涨跌额","成交量(手)","成交额","振幅","最高","最低","今开","昨收","量比","换手率","市净率"],axis=1)
a

a.corr()

df_Data.info()

data_hushi = df_Data[df_Data['代码']>=600000]
data_chuangye = df_Data[(df_Data['代码']<600000)&(df_Data['代码']>=100000)]
data_shenshi = df_Data[df_Data['代码']<100000]
list(data_shenshi['成交量(手)'])

#沪市
hushi_mean = []
hushi_std = []
def trans(list_e):
    c=[]
    for i in list_e:
        c.append(float(i[:-1]))
    return c
hushi_mean.append(data_hushi['最新价'].mean())
hushi_std.append(data_hushi['最新价'].std())
hushi_mean.append(data_hushi['涨跌幅'].mean())
hushi_std.append(data_hushi['涨跌幅'].std())
hushi_mean.append(np.mean(trans(list(data_shenshi['成交量(手)']))))
hushi_std.append(np.std(trans(list(data_shenshi['成交量(手)']))))
hushi_mean.append(data_hushi['振幅'].mean())
hushi_std.append(data_hushi['振幅'].std())
hushi_mean.append(data_hushi['换手率'].mean())
hushi_std.append(data_hushi['换手率'].std())
hushi_mean.append(data_hushi['市盈率(动态)'].mean())
hushi_std.append(data_hushi['市盈率(动态)'].std())
hushi_mean.append(data_hushi['市净率'].mean())
hushi_std.append(data_hushi['市净率'].std())

#创业
chuangye_mean = []
chuangye_std = []
chuangye_mean.append(data_chuangye['最新价'].mean())
chuangye_std.append(data_chuangye['最新价'].std())
chuangye_mean.append(data_chuangye['涨跌幅'].mean())
chuangye_std.append(data_chuangye['涨跌幅'].std())
chuangye_mean.append(np.mean(trans(list(data_chuangye['成交量(手)']))))
chuangye_std.append(np.std(trans(list(data_chuangye['成交量(手)']))))
chuangye_mean.append(data_chuangye['振幅'].mean())
chuangye_std.append(data_chuangye['振幅'].std())
chuangye_mean.append(data_chuangye['换手率'].mean())
chuangye_std.append(data_chuangye['换手率'].std())
chuangye_mean.append(data_chuangye['市盈率(动态)'].mean())
chuangye_std.append(data_chuangye['市盈率(动态)'].std())
chuangye_mean.append(data_chuangye['市净率'].mean())
chuangye_std.append(data_chuangye['市净率'].std())

#深市
shenshi_mean = []
shenshi_std = []
shenshi_mean.append(data_shenshi['最新价'].mean())
shenshi_std.append(data_shenshi['最新价'].std())
shenshi_mean.append(data_shenshi['涨跌幅'].mean())
shenshi_std.append(data_shenshi['涨跌幅'].std())
shenshi_mean.append(np.mean(trans(list(data_shenshi['成交量(手)']))))
shenshi_std.append(np.std(trans(list(data_shenshi['成交量(手)']))))
shenshi_mean.append(data_shenshi['振幅'].mean())
shenshi_std.append(data_shenshi['振幅'].std())
shenshi_mean.append(data_shenshi['换手率'].mean())
shenshi_std.append(data_shenshi['换手率'].std())
shenshi_mean.append(data_shenshi['市盈率(动态)'].mean())
shenshi_std.append(data_shenshi['市盈率(动态)'].std())
shenshi_mean.append(data_shenshi['市净率'].mean())
shenshi_std.append(data_shenshi['市净率'].std())

columns = ['最新价','涨跌幅','成交量(手)','振幅','换手率','市盈率(动态)','市净率']

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from jupyterthemes import jtplot
jtplot.style(theme='chesterish') #选择一个绘图主题
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(16, 8))  # 设置画布
plt.plot(columns,hushi_mean, 'bs-',
       columns, chuangye_mean, 'ro-.',
       columns, shenshi_mean, 'gH--')  # 绘制折线图
plt.xlabel('指标')  # 添加横轴标签
plt.ylabel('指标均值')  # 添加y轴名称
plt.title('各地区不同指标均值')  # 添加图表标题
plt.legend(['沪市', '创业', '深市'])
plt.show()

plt.figure(figsize=(16, 8))  # 设置画布
plt.plot(columns,hushi_std, 'bs-',
       columns, chuangye_std, 'ro-.',
       columns, shenshi_std, 'gH--')  # 绘制折线图
plt.xlabel('指标')  # 添加横轴标签
plt.ylabel('指标方差')  # 添加y轴名称
plt.title('各地区不同指标方差')  # 添加图表标题
plt.legend(['沪市', '创业', '深市'])
plt.show()

import seaborn as sns
ax = sns.scatterplot(x='涨跌幅', y='市盈率(动态)', data=df_Data)
plt.title('市盈率和涨跌幅关系散点图')
plt.show()

#选取左上角、右上角、右下角数据对应为筛选的股票数据
data_finall = df_Data[((df_Data['市盈率(动态)']>=0)&(df_Data['涨跌幅']>=-0.04))|((df_Data['市盈率(动态)']<-400)&(df_Data['涨跌幅']>=-0.04))]
data_finall.to_csv("筛选的股票.csv",encoding = 'gbk')

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种功能强大的编程语言,被广泛应用于股票数据分析领域。Python提供了丰富的库和工具,可用于获取、处理和分析股票数据,同时还可以进行可视化展示。 在股票数据分析中,首先需要获取股票数据Python中有许多数据源,如Yahoo Finance、Quandl和Alpha Vantage等,可以免费获取股票基本数据以及技术分析数据等。 接着,使用Python中的Pandas库对数据进行数据预处理,如数据清洗、排序、过滤等。Pandas提供了强大的数据结构和数据操作方法,可以对大规模的股票数据进行高效处理。 在数据预处理完成后,使用Python中的Matplotlib、Seaborn等库进行数据可视化展示。通过图形化展示分析结果,可以更加清晰地了解数据特点和股票市场走向。 除此之外,Python还提供了一些量化分析工具,如Pyfolio、Zipline等。这些工具可以在股票交易策略的制定和回测中发挥重要作用。 我们可以使用Python股票数据转化为更直观和可操作的信息,进行更全面、深入的股票分析,从而制定更有效的股票交易策略,提高交易的成功率。 ### 回答2: 随着互联网金融行业的持续发展,越来越多的人开始关注股票市场,希望通过对市场数据的深入分析来获取更加科学的投资决策。而Python作为一种高效、易学易用的编程语言,可以帮助投资者轻松地进行股票数据分析Python对于股票分析有许多非常有用的库,其中最重要的是Pandas和NumPy库。Pandas库是Python中用于数据分析的主要库之一,它提供了丰富的数据结构和数据分析工具,使数据的处理和分析变得更加简单Pandas拥有强大的数据读取功能,能够轻松地处理一系列格式的股票数据,如csv、Excel、JSON、SQL等数据文件格式。 NumPy库是Python中用于科学计算的主要库之一,它提供了高效的数组和矩阵运算功能。在股票分析中,NumPy库可以用来进行多维数组的数据处理和计算。 通过使用Pandas和NumPy库,可以轻松地对股票数据进行读取、处理、分析和可视化,以帮助投资者更准确地预测股票走势和做出更科学的投资决策。实际上,越来越多的金融机构正在将Python作为他们的主要编程语言,以便更好地处理数据和进行分析。 在Python之外,还有许多其他的库和工具可用于股票分析。例如,Matplotlib库可以用于图表绘制和可视化,Scikit-learn库可以用于数据挖掘和预测建模。 总之,Python作为一种通用的编程语言,能够轻松地与其他软件集成,并为股票数据分析提供丰富的库和工具。无论是日常投资者还是专业的金融分析师,都可以受益于Python股票数据分析中的应用。 ### 回答3: Python是一种流行的编程语言,适用于各种应用领域,包括股票数据分析。在股票市场上, 数据驱动投资策略已经成为了趋势,而 Python 对于股票数据的处理以及可视化具有极高的应用价值。 Python语言与众多的科学计算库的出现,大大简化了股票数据分析的工作流程,并激发了数据科学家和量化投资者的创造力。下面让我们一起探讨如何使用Python进行股票数据分析。 首先,我们需要获取股票数据。在中国,我们可以通过股票交易所和证券公司的接口获得数据。在海外,Yahoo Finance等数据服务供应商也提供了数据接口。我们还可以使用网络爬虫技术从网站抓取股票数据。这些数据可以是个股价格、财务报表等各种形式。 其次,我们需要对数据进行清洗和处理。这些数据可能来自多个来源,格式也可能不同,因此需要进行标准化处理,以便于我们进行后续的数据分析和建模。例如,对于行情数据,我们可能需要进行填补缺失值、去掉异常值等操作。 接着,我们需要对数据进行分析。 对于股票数据所涉及到的问题复杂性,数据科学家需要从多个角度来进行分析。在Python中,我们可以使用众多的数据科学库(如numpy、pandas和matplotlib等)来进行数据统计和可视化。 最后是数据建模。 在进行数据建模之前,我们需要对数据进行特征工程和建立模型。在Python中,我们可以使用不同的机器学习库(如scikit-learn等)来创建机器学习模型。 股票数据分析是一个复杂的过程,需要充分的调研、数据清洗、统计分析和模型建立等工作,但是Python提供了很多有用的工具和库,使得这个过程更加简单和高效。值得一提的是,Python还有很多贡献者开发了一些量化投资库(如backtrader等),这些库已经提供了大量的开源策略和模型,方便开发者快速实现策略并验证其可行性,提高了工作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值