在basic数据库中读取stock_basic表格的ts_code列的数据作为表名,给表名加反引号才可以查找 在daily数据库遍历所有表格,对于每个表格 查询net_mf_amount列的数据,按照trade_date降序排列 对查询结果进行pandas计算,a和b列均已存在,不需要判断,对net_mf_amount列的前一天的数据减去今天的数据放在a列, 将a列的值前一天的数据减去今天的数据放在b列,如果a和b之前计算过,则跳过计算下一个值 保存a和b列的值 继续处理下一个表格,直到处理完所有表格,,代码报错ProgrammingError: Duplicate column name 'a'

时间: 2024-02-09 10:12:11 浏览: 23
好的,我理解了你的问题。根据你所提供的问题,我可以为你提供以下代码作为参考: ```python import pandas as pd import pymysql # 建立连接 basic_conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='basic') daily_conn = pymysql.connect(host='localhost', port=3306, user='root', password='123456', db='daily') # 获取basic数据库中的表名 cursor = basic_conn.cursor() cursor.execute("SELECT ts_code FROM stock_basic") tables = cursor.fetchall() # 遍历所有表格 for table in tables: table_name = table[0] sql = f"SELECT net_mf_amount, trade_date FROM `{table_name}` ORDER BY trade_date DESC" cursor = daily_conn.cursor() cursor.execute(sql) data = cursor.fetchall() df = pd.DataFrame(list(data), columns=['net_mf_amount', 'trade_date']) # 对查询结果进行pandas计算 if 'a' not in df.columns and 'b' not in df.columns: df['a'] = df['net_mf_amount'].shift(1) - df['net_mf_amount'] df['b'] = df['a'].shift(1) - df['a'] else: continue # 保存a和b列的值 cursor = daily_conn.cursor() try: cursor.execute(f"ALTER TABLE `{table_name}` ADD COLUMN a FLOAT") cursor.execute(f"ALTER TABLE `{table_name}` ADD COLUMN b FLOAT") except: pass for index, row in df.iterrows(): a_value = row['a'] b_value = row['b'] trade_date = row['trade_date'] cursor.execute(f"UPDATE `{table_name}` SET a = {a_value}, b = {b_value} WHERE trade_date = '{trade_date}'") daily_conn.commit() # 关闭连接 cursor.close() basic_conn.close() daily_conn.close() ``` 这段代码会首先连接basic数据库,获取stock_basic表格中的ts_code列的数据作为表名。然后,它会连接daily数据库,并遍历所有表格,对于每个表格查询net_mf_amount列的数据,按照trade_date降序排列。接着,它会对查询结果进行pandas计算,将a和b列的值保存到数据库中,并继续处理下一个表格,直到处理完所有表格。最后,关闭连接。 需要注意的是,如果在计算过程中出现了“Duplicate column name 'a'”这个错误,可能是因为之前已经执行过保存a和b列的操作,可以在保存之前,先判断一下df中是否已经存在a和b列,如果已经存在,则跳过计算下一个值。

相关推荐

最新推荐

recommend-type

Oracle数据库-TNS连接

Oracle数据库-TNS连接 第一份工作是在东亚银行,规定要穿正装上班,当时身上没有什么钱,只能去地摊上买黑裤子搭白衬衫,不忍直视。 进入项目组,第一件事就是给电脑安装Oracle客户端和PL/SQL。就如同你的钱存在银行...
recommend-type

LE Audio协议草案 Basic_Audio_Profile_d09r06.pdf

The Basic Audio Profile (BAP) defines procedures for audio stream control by using the Generic Attribute Profile (GATT) and the Generic Access Profile (GAP) for devices that want to use Bluetooth Low ...
recommend-type

数据库学生管理系统课程设计报告.doc

使用Visual Basic6.0语言和数据库建立连接,开发学生成绩管理系统,并且能成功运行,完成任务设计书中要求的功能。 2. 课程设计内容和要求 内容: 学生成绩管理系统 主要功能 1.用户登录窗口。 2.系统总控菜单窗口...
recommend-type

http basic authentication通过post方式访问api示例分享 basic认证示例

在HTTP中,基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供以用户名和口令形式的凭证,这篇文章主要介绍了http basic authentication通过post方式访问api示例,大家参考使用吧
recommend-type

EWM110_EN_Col17_Basic Customizing SAP EWM.pdf

EWM110_EN_Col17_Basic Customizing SAP EWM - SAP PA
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。