【Python作业】对股票数据分析&处理

一、前言

上午写了一个版本,将简单问题复杂化了,本题主要考的是 文件操作及常见数据类型的处理 ,惭愧学了几个月基础还是很差,想想还是觉得不对劲,重新写了一个版本,精简不少。

版本1:Python综合实战对股票数据分析&处理

二、 题目要求

开发程序对stock_data.txt进行以下操作:

  1. 程序启动后,给⽤用户提供查询接⼝口,允许⽤用户重复查股票⾏行行情信息(⽤用到循环)
  2. 允许用户通过模糊查询股票名,⽐如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来
  3. 允许按股票价格、涨跌幅、换手率这⼏列来筛选信息,⽐如输入“价格>50”则把价格大于50的股票都打印,输⼊入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。

思路提示:加载⽂件内容到内存,转成dict or list结构,然后对dict or list
进行查询等操作。这样以后就不用每查一次就要打开一次文件了,效率会高。

三、 原数据

股票代码,股票名称,当前价,涨跌额,涨跌幅,年初至今,成交量,成交额,换手率,市盈率(TTM),股息率,市值
SH601778,N晶科,6.29,+1.92,+43.94%,+43.94%,259.66,1625.52,0.44%,22.32,-,173.95亿
SH688566,吉贝尔,52.66,+6.96,+15.23%,+122.29%,1626.58,8.09亿,42.29%,89.34,-,98.44亿
SH688268,华特气体,88.80,+11.72,+15.20%,+102.51%,622.60,5.13亿,22.87%,150.47,-,106.56亿
SH600734,实达集团,2.60,+0.24,+10.17%,-61.71%,1340.27,3391.14,2.58%,亏损,0.00%,16.18亿
SH900957,凌云B股,0.36,+0.033,+10.09%,-35.25%,119.15,42.10,0.65%,44.65,0.00%,1.26亿
SZ000584,哈工智能,6.01,+0.55,+10.07%,-4.15%,2610.86,1.53亿,4.36%,199.33,0.26%,36.86亿
SH600599,熊猫金控,6.78,+0.62,+10.06%,-35.55%,599.64,3900.23,3.61%,亏损,0.00%,11.25亿
SH600520,文一科技,8.21,+0.75,+10.05%,-24.05%,552.34,4464.69,3.49%,亏损,0.00%,13.01亿
SH603682,锦和商业,11.73,+1.07,+10.04%,+48.29%,2746.63,3.15亿,29.06%,29.62,-,55.42亿
SZ300831,派瑞股份,12.27,+1.12,+10.04%,+208.29%,25.38,311.41,0.32%,60.59,-,39.26亿
SH900939,汇丽B,0.504,+0.046,+10.04%,-23.52%,123.86,61.86,1.41%,52.80,0.00%,9147.60万
SH600880,博瑞传播,4.39,+0.40,+10.03%,+10.03%,1117.75,4816.57,1.02%,95.87,0.50%,48.00亿
SZ000609,中迪投资,7.68,+0.70,+10.03%,+39.64%,2663.08,2.00亿,9.12%,58.84,0.00%,22.98亿
SZ300328,宜安科技,15.80,+1.44,+10.03%,+7.19%,432.45,6832.68,0.95%,64.80,0.51%,72.72亿
SZ002988,豪美新材,17.33,+1.58,+10.03%,+58.41%,3.50,60.68,0.06%,24.42,-,40.34亿
SZ000615,京汉股份,4.61,+0.42,+10.02%,+4.06%,518.09,2388.41,0.69%,亏损,0.00%,36.06亿
SZ300443,金雷股份,18.33,+1.67,+10.02%,+32.74%,987.25,1.75亿,6.19%,18.78,1.08%,43.64亿
SH600506,香梨股份,11.42,+1.04,+10.02%,+11.96%,1039.48,1.18亿,7.04%,亏损,0.00%,16.87亿
SZ300505,川金诺,15.61,+1.42,+10.01%,-11.26%,493.54,7555.40,6.03%,26.70,0.85%,20.40亿
SZ300830,金现代,14.95,+1.36,+10.01%,+239.77%,63.66,951.76,0.74%,70.76,0.00%,64.30亿
SH603630,拉芳家化,17.26,+1.57,+10.01%,+27.85%,949.49,1.60亿,4.19%,209.44,0.83%,39.13亿
SZ002655,共达电声,11.43,+1.04,+10.01%,-14.64%,1683.51,1.88亿,4.68%,166.69,0.00%,41.15亿
SZ300460,惠伦晶体,16.59,+1.51,+10.01%,+0.97%,430.28,6974.52,2.56%,亏损,0.00%,27.92亿
SH603929,亚翔集成,20.33,+1.85,+10.01%,+33.40%,1373.66,2.76亿,6.44%,84.29,1.25%,43.38亿
SH603392,万泰生物,35.97,+3.27,+10.00%,+311.09%,6.92,248.91,0.16%,65.24,-,155.97亿
SZ000788,北大医药,6.82,+0.62,+10.00%,+2.40%,832.44,5583.87,1.40%,89.69,0.32%,40.65亿
SH601609,金田铜业,10.89,+0.99,+10.00%,+66.26%,4027.64,4.28亿,16.64%,32.38,0.32%,158.66亿
SZ000403,双林生物,52.48,+4.77,+10.00%,+62.48%,171.75,9013.54,0.63%,88.80,0.23%,143.05亿
SZ300832,新产业,72.80,+6.62,+10.00%,+131.92%,10.73,780.85,0.26%,40.20,0.62%,299.64亿
SZ002985,北摩高科,92.58,+8.42,+10.00%,+310.92%,2422.97,21.55亿,64.54%,60.48,1.08%,139.02亿
SH603348,文灿股份,18.06,+1.64,+9.99%,-25.15%,357.86,6328.87,4.39%,89.39,0.89%,41.83亿
SH603900,莱绅通灵,8.92,+0.81,+9.99%,-5.61%,1364.10,1.15亿,4.01%,43.78,5.06%,30.37亿
SH603042,华脉科技,17.85,+1.62,+9.98%,+17.05%,491.44,8705.99,4.86%,128.50,0.31%,24.28亿
SZ300260,新莱应材,19.83,+1.80,+9.98%,+68.48%,1800.45,3.48亿,14.16%,65.15,0.73%,40.04亿
SZ000557,西部创业,3.42,+0.31,+9.97%,-0.87%,2751.17,9408.89,1.89%,79.39,0.00%,49.88亿
SZ300716,国立科技,9.94,+0.90,+9.96%,-4.24%,142.25,1413.92,1.50%,亏损,0.29%,15.91亿
SZ002449,国星光电,11.92,+1.08,+9.96%,-6.80%,5185.52,6.03亿,8.53%,21.51,2.73%,73.72亿

三、代码示例

'''
 股票数据分析
 version:02
 author:金鞍少年
 date:2020-10-21
'''

def stocks(file):
    stocks_data = {}
    Col_list = ['当前价', '涨跌额', '涨跌幅', '换手率']
    with open(file, 'r', encoding='utf-8')as f:
        # 读取文件
        for line in f:
            line_list = line.strip().split(',')  # 按输入字符分割,将其转化为数组
            stocks_data[line_list[0]] = line_list
        headers = stocks_data["股票代码"]

        while True:
            # 模糊查询
            try:
                count = 0
                cmd = input("\n=========股票数据查询系统==========\n请输入查询指令>>:").strip()
                if not cmd: continue
                print(headers)  # 打印头部

                # 模糊查询
                for sid_s, s_data in stocks_data.items():
                    s_name = s_data[1]
                    if cmd in s_name:
                        print(s_data)
                        count += 1

                # 公式查询
                res = re.split("[<>]", cmd)
                if res[0] in Col_list:
                    for sid_s, s_data in stocks_data.items():
                        stock_info = s_data[headers.index(res[0])].replace('%', '')
                        res_info = res[1]
                        if sid_s == "股票代码": continue
                        if ">" in cmd:
                            if float(stock_info) > float(res_info):
                                print(s_data)
                                count += 1
                        elif "<" in cmd:
                            if float(stock_info) < float(res_info):
                                print(s_data)
                                count += 1
                print(f"总共找到 {count} 条数据!")
            except Exception as e:
                print(f"出现错误:{e}")

if __name__ == '__main__':
    import re
    stocks(file="../res/stock_data.txt")

四、结果

在这里插入图片描述

### 回答1: Python作业数据分析通常会使用到numpy、matplotlib和爬虫技术。下面我详细介绍一下: 1. Numpy:Numpy是Python中常用的数值计算库,它提供了对多维数组对象的支持以及一系列科学计算函数。在数据分析中,我们可以使用numpy来进行数据处理、数据清洗、数据转换等操作。例如,我们可以使用numpy来进行数组运算、矩阵计算、向量化操作等,大大提高了运算效率和开发速度。 2. Matplotlib:Matplotlib是Python中广泛使用的数据可视化库,它可以用来绘制各种类型的图表,如折线图、柱状图、饼图、散点图等。在数据分析中,我们可以使用matplotlib来展示和探索数据的分布、关系和趋势,帮助我们更好地理解数据。例如,我们可以使用matplotlib来绘制销售趋势图,比较不同产品的销售情况等。 3. 爬虫:爬虫是一种自动化获取网页信息的技术,通过模拟浏览器行为并提取网页中的数据,可以获取大量的结构化数据。在数据分析中,我们可以使用爬虫技术来从各种数据源(如网页、API、数据库等)中获取数据,以便进行后续的分析和处理。例如,我们可以编写爬虫程序来爬取电商网站的商品信息,然后使用numpy和matplotlib对这些数据进行分析和可视化。 综上所述,Python作业数据分析常使用numpy、matplotlib和爬虫技术,它们分别用于数据处理、数据可视化和数据获取方面,为我们提供了强大的分析工具和方法。 ### 回答2: Python作业数据分析主要涉及到了三个重要的模块:NumPy,Matplotlib和爬虫。 首先是NumPy,它是一个强大的Python科学计算库。我们可以使用NumPy来处理和分析大量的数据。它提供了高效的数组运算和数值计算的功能,可以进行数据处理、转换、矩阵运算等。在数据分析中,可以利用NumPy来进行数据预处理、数据清洗、数据变换等操作。 其次是Matplotlib,这是一个用于创建各种类型图表和可视化的Python绘图库。我们可以使用Matplotlib来绘制图表、直方图、散点图、饼图等,以直观的方式展示数据分析结果。Matplotlib不仅可以用于静态图表的绘制,还可以创建动态图表和交互式图表,使得数据呈现更加生动。 最后是爬虫,也就是利用Python编写程序从网页上获取所需数据的技术。爬虫可以通过发送HTTP请求,解析HTML文档,提取所需数据并保存到本地或进一步处理。在数据分析中,我们可以使用爬虫来获取特定网站上的数据,例如股票价格,天气信息等,从而进行后续的数据分析处理。 综上所述,Python作业数据分析涉及到的关键技术主要是NumPy、Matplotlib和爬虫。通过利用这些技术,我们可以对大量数据进行处理、分析和可视化呈现,从而得出有意义的结论和结果。 ### 回答3: Python作业数据分析主要涉及到numpy、matplotlib和爬虫技术。 首先,numpy是Python科学计算的基础库,它提供了多维数组对象和一些用于处理数组的函数。在数据分析中,可以使用numpy进行数据的存储、处理和计算,如数据清洗、分析、转换等。通过numpy的数组对象,可以方便地进行向量化计算,加快数据处理的速度。 其次,matplotlib是一个可视化库,它能够将数据以图表的形式展示出来。在数据分析中,我们可以使用matplotlib绘制各种类型的图表,如柱状图、折线图、散点图等,以便更直观地展示数据的特征和趋势。通过调用matplotlib的API,可以自定义图表的外观和样式,使其更符合数据分析的需要。 最后,爬虫技术是通过模拟HTTP请求,从网页中提取数据的一种技术。在数据分析中,我们可以使用爬虫技术从互联网上获取所需的数据,如股票数据、天气数据、新闻数据等,以便进行后续的分析和处理。通过合理的选择爬虫库和编写爬虫脚本,可以高效地获取到所需的数据。 综上所述,Python作业数据分析主要涉及到numpy、matplotlib和爬虫技术。通过numpy进行数据的处理和计算,使用matplotlib进行数据的可视化,以及利用爬虫技术获取所需的数据。通过综合运用这些技术,可以对数据进行深入的分析和挖掘,发现数据中的规律和趋势,为决策提供有力的支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值