如何用python软件选取股票

如何用python软件随机选取csv文件中的20支股票并剔除ST股票?

import pandas as pd
import random

# 读取 CSV 文件并剔除 ST 股票
df = pd.read_csv('your_file.csv')
df = df[~df['股票代码'].str.contains('ST')]

# 随机选取 20 支股票
selected_stocks = random.sample(list(df['股票代码']), 20)
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7603793
  • 这篇博客你也可以参考下:【python】使用python对csv表格某一列的重复数据去重
  • 你还可以看下python参考手册中的 python-csv --- CSV 文件读写
  • 除此之外, 这篇博客: 为什么python控制台读取csv文件后输出没有反应?中的 总结 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 使用控制台输出python的数据,记得加print()函数哦!

     

     

  • 您还可以看一下 章秀淞老师的python数据分析和可视化课程中的 读取和导出csv文件小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以通过以下步骤解决您提出的优化后问题:

    1. 读取csv文件并将所有数据存放到一个列表中;
    2. 遍历这个列表,找到所有不是ST股票的股票代码,并将这些股票代码存放到一个新的列表中;
    3. 从新的列表中随机选取20只股票;
    4. 将这20只股票的股票代码写入一个新的csv文件中。

    代码如下:

    import csv
    import random
    
    filename = 'stocks.csv'  # csv文件名
    output_file = 'random_stocks.csv'  # 输出csv文件名
    
    # 读取csv文件并将所有数据存放到一个列表中
    data = []
    with open(filename, 'r', encoding='utf-8') as file:
        csv_reader = csv.reader(file)
        for row in csv_reader:
            data.append(row)
    
    # 遍历这个列表,找到所有不是ST股票的股票代码,并将这些股票代码存放到一个新的列表中
    stocks = []
    for row in data:
        if row[1][-2:] != 'ST':
            stocks.append(row[0])
    
    # 从新的列表中随机选取20只股票
    random_stocks = random.sample(stocks, 20)
    
    # 将这20只股票的股票代码写入一个新的csv文件中
    with open(output_file, 'w', encoding='utf-8', newline='') as file:
        csv_writer = csv.writer(file)
        for stock in random_stocks:
            csv_writer.writerow([stock])
    

    其中的关键点是:

    1. 在读取文件时使用csv.reader对象;
    2. 判断股票代码是否为ST股票需要使用切片,即[-2:]表示从倒数第二个字符到最后一个字符;
    3. 使用random.sample函数直接从股票代码列表中随机选取20只股票;
    4. 使用csv.writer对象将选取的股票代码写入新的csv文件中。