# 读取股票数据 data_stock=pd.read_csv('SH603019.csv’) # 将两列完全没数据的列删除 data_stock.drop(columns=['volume_post', 'amount_post'],inplace=True) #在数据中加入一列舆情评分,初始值为0.5 data_stock['sentiment_score_avg'] = 0.5 # 把爬下来的股票包含的所有日期提取出来放到date_list列表里 date_list = [x for x in data_stock.loc[:, 'timestamp'].values]
时间: 2024-03-07 15:51:11 浏览: 31
这段代码用于读取股票数据文件SH603019.csv,并将两列完全没有数据的列volume_post和amount_post从数据中删除。然后,它在数据中添加了一列名为sentiment_score_avg的列,并将其初始值设置为0.5。接下来,这段代码将从数据中提取所有日期并将它们存储在date_list列表中。
相关问题
df = pd.read_csv('stock_comments_analyzed.csv', parse_dates=['created_time']) grouped = df['polarity'].groupby(df.created_time.dt.date) def BI_Simple_func(row): pos = row[row == 1].count() neg = row[row == 0].count() return (pos-neg)/(pos+neg) BI_Simple_index = grouped.apply(BI_Simple_func) def BI_func(row): pos = row[row == 1].count() neg = row[row == 0].count() bi = np.log(1.0 * (1+pos) / (1+neg)) return bi BI_index = grouped.apply(BI_func) sentiment_idx = pd.concat([BI_index.rename('BI'), BI_Simple_index.rename('BI_Simple')], axis=1) quotes = pd.read_csv('./data/sh000001.csv', parse_dates=['date']) quotes.set_index('date', inplace=True) sentiment_idx.index = pd.to_datetime(sentiment_idx.index) merged = pd.merge(sentiment_idx, quotes, how='left', left_index=True, right_index=True) merged.fillna(method='ffill', inplace=True) merged['BI_MA'] = merged['BI'].rolling(window=10, center=False).mean() merged['BI_Simple_MA'] = merged['BI_Simple'].rolling(window=10, center=False).mean() merged.to_csv('merged_sentiment_idx.csv')
这段代码是关于股票情绪指数的计算和处理,包括读取股票评论数据并按日期分组,定义了两个函数用于计算简单的情绪指数和 BI 指数,然后将这些指数与股票行情数据进行合并并计算移动平均数,最后将结果保存到 csv 文件中。其中,BI 指数是一种用于衡量市场情绪的指标,通过计算买方和卖方之间的力量平衡来反映市场的情绪状态。
import tensorflow as tf import numpy as np import tkinter as tk from tkinter import filedialog import time import pandas as pd import stock_predict as pred def creat_windows(): win = tk.Tk() # 创建窗口 sw = win.winfo_screenwidth() sh = win.winfo_screenheight() ww, wh = 800, 450 x, y = (sw - ww) / 2, (sh - wh) / 2 win.geometry("%dx%d+%d+%d" % (ww, wh, x, y - 40)) # 居中放置窗口 win.title('LSTM股票预测') # 窗口命名 f_open =open('dataset_2.csv') canvas = tk.Label(win) canvas.pack() var = tk.StringVar() # 创建变量文字 var.set('选择数据集') tk.Label(win, textvariable=var, bg='#C1FFC1', font=('宋体', 21), width=20, height=2).pack() tk.Button(win, text='选择数据集', width=20, height=2, bg='#FF8C00', command=lambda: getdata(var, canvas), font=('圆体', 10)).pack() canvas = tk.Label(win) L1 = tk.Label(win, text="选择你需要的 列(请用空格隔开,从0开始)") L1.pack() E1 = tk.Entry(win, bd=5) E1.pack() button1 = tk.Button(win, text="提交", command=lambda: getLable(E1)) button1.pack() canvas.pack() win.mainloop() def getLable(E1): string = E1.get() print(string) gettraindata(string) def getdata(var, canvas): global file_path file_path = filedialog.askopenfilename() var.set("注,最后一个为label") # 读取文件第一行标签 with open(file_path, 'r', encoding='gb2312') as f: # with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 读取所有行 data2 = lines[0] print() canvas.configure(text=data2) canvas.text = data2 def gettraindata(string): f_open = open(file_path) df = pd.read_csv(f_open) # 读入股票数据 list = string.split() print(list) x = len(list) index=[] # data = df.iloc[:, [1,2,3]].values # 取第3-10列 (2:10从2开始到9) for i in range(x): q = int(list[i]) index.append(q) global data data = df.iloc[:, index].values print(data) main(data) def main(data): pred.LSTMtest(data) var.set("预测的结果是:" + answer) if __name__ == "__main__": creat_windows()这个代码能实现什么功能
这个代码实现了一个简单的GUI界面,可以让用户选择一个股票数据集,选择需要的列,然后用LSTM模型对这些列进行预测,并在界面上展示预测结果。具体来说,该代码使用了Tkinter库创建了一个窗口,其中包括一个按钮用于选择数据集,一个标签用于展示数据集的列名,以及一个文本框用于让用户输入需要的列。当用户点击提交按钮后,程序会读取用户输入的列号,并使用Pandas库读取该数据集,提取用户选择的列,再使用stock_predict.py文件中的LSTM模型对这些列进行预测,并在界面上展示预测结果。