Python代码更新Excel中的股票信息

您所在的位置:网站首页 excel中日期只取日 Python代码更新Excel中的股票信息

Python代码更新Excel中的股票信息

2023-03-31 22:39| 来源: 网络整理| 查看: 265

Excel电子表格是跟踪股票信息的常见工具。但是,手动更新最新信息的电子表格可以很繁琐且耗时。在本篇博客中,我们将探讨一个Python代码,通过自动更新Excel电子表格与最新股票信息来简化这个过程。

该代码由两个函数组成:get_days_now_buy和update_stock_excel。前者接受表名和股票代码作为参数,从Excel文件读取数据,并返回股票购买日期和今天的工作日之间的天数。后者接受表名、股票代码列表、名称列表和每只股票当前和开盘价格列表作为参数。它从Excel表格中读取现有数据,使用新数据更新它,并写回表格。最后,它返回每只股票的购买价格列表。

以下是这两个函数的源代码:

def get_days_now_buy(sheet_name, code): try: df = pd.read_excel(Stock_templet_path, header=0, sheet_name=sheet_name) except: return 0 stock_title = df.columns.values stock_title_str = "".join('%s-' % a for a in stock_title) if stock_title_str.find(str(code)) == -1: print("线上分组和表格code内容对不上,找不到代码:", code, "-不进行持有时间计算,请核对!!!") return None df_dict = df.to_dict() try: data = df_dict[str(code)][0] except: data = df_dict[int(code)][0] data = data.split('-') d_buy = datetime.date(int(data[0]), int(data[1]), int(data[2])) d_now = datetime.date(int(datetime.datetime.now().year), int(datetime.datetime.now().month), int(datetime.datetime.now().day)) days_work = np.busday_count(d_buy, d_now) return int(days_work) def update_stock_excel(sheet_name, stock_code_list, stock_name_list, stock_new_list, stock_open_list): try: df = pd.read_excel(Stock_templet_path, sheet_name=sheet_name, dtype={0: "string"}) except: print(sheet_name, "sheet读取失败!!! 开始新建···") doc_function.creat_excel_sheet(sheet_name, stock_code_list, stock_name_list) return None stock_title = df.columns.values stock_title_str = "".join('%s-' % a for a in stock_title) for code in stock_code_list: if stock_title_str.find(str(code)) == -1: print("线上分组和表格内容对不上,找不到代码:", code, "-不进行策略匹配,请核对!!!") return None df_dict = df.to_dict() buy_list = [] i = 0 for code in stock_code_list: pd_dict = dict() try: stock_buy = df_dict[code][1] except: stock_buy = df_dict[int(code)][1] buy_list.append(stock_buy) try: stock_buy_price = float(stock_buy) radio = (float(stock_new_list[int(i)]) - stock_buy_price) / (stock_buy_price) * 100 radio = round(radio, 2) except: print(sheet_name, "未找到买入价格,请填入!!!") return None pd_dict[f'{stock_code_list[int(i)]}'] = [str(stock_open_list[int(i)])] pd_dict[f'{stock_name_list[int(i)]}'] = [f'{radio}%'] days_work = stock_parse.get_days_now_buy(sheet_name, code) doc_function.add_row_to_excel(pd_dict, str(sheet_name), Stock_templet_path, days_work) i = i + 1 return buy_list

要使用此代码,您需要安装以下库:pandas、numpy和datetime。您还需要在Stock_templet_path变量中指定电子表格的路径。

总之,这个Python代码是自动更新Excel电子表格与最新股票信息的有用工具。它可以为任何需要定期跟踪股票价格的人节省时间和精力。它可以用于个人投资者、股票交易员以及其他需要更新股票价格信息的人士。

当我们了解这个代码的不同部分时,就能更好地理解其工作原理。

首先,get_days_now_buy函数使用pandas库中的read_excel方法读取指定电子表格的数据,并检查其中是否包含给定股票代码。如果找不到该代码,则会返回None;否则,该函数将从电子表格中提取购买日期并计算持有时间。

然后,update_stock_excel函数使用read_excel方法读取指定电子表格的数据。如果找不到该表格,则创建一个新表格。然后,该函数使用股票代码列表迭代通过循环。在每次迭代中,它从电子表格中提取购买价格并将其添加到buy_list列表中。然后,它根据新的和开盘价格计算每只股票的收益率,并将其添加到字典pd_dict中。接下来,该函数使用add_row_to_excel方法将新行添加到电子表格中,并将持有天数作为参数传递。

最后,该函数返回buy_list列表,其中包含每只股票的购买价格。这些价格可以用于进一步的分析和决策。

源文件链接及描述见:https://blog.csdn.net/Fei_Yang_YF/article/details/129832565?spm=1001.2014.3001.5501



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3