如何用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)
使用控制台输出python的数据,记得加print()函数哦!
我可以通过以下步骤解决您提出的优化后问题:
代码如下:
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])
其中的关键点是:
[-2:]
表示从倒数第二个字符到最后一个字符;