问题标签 [pandas-to-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何将熊猫数据框插入包含列表的列的表中
我有一个熊猫数据框,其中一列包含列表格式 tield(即 [2ndchance])
我想按原样将其插入数据库中,但出现错误。
我正在执行以下句子:
它失败并出现以下错误:
ProgrammingError: (mysql.connector.errors.ProgrammingError) 处理pyformat-parameters失败;Python 'list' 无法转换为 MySQL 类型 [SQL: 'INSERT INTO playbyplay
我想将它按原样添加到表中,如果不可能只是想从我的数据框中删除它,但无论我执行什么似乎总是将它识别为一个列表,而最初只是一个字符串。
python - Python.Dataframe 到 MySql:MySQL 服务器已经消失
我正在尝试在 mysql 中编写几个数据帧。我使用mysql.connector进行连接,使用sqlalchemy创建引擎。
大多数数据帧都正确写入数据库。不幸的是,应用程序停止并出现以下错误:
由于断开连接的数据帧也是最大的数据帧(pickle 文件:198MB),我认为这是由于MySql-Server 设置 max_allowed_packet 或 timeout造成的。(如此处所述)
所以我通过'connect_timeout'扩展了我的SQLConnector(见下文)中的配置文件:900。不幸的是没有结果。我还读到您应该调整 MySql 服务器的 my.cnf。不幸的是,我不知道在哪里可以找到它们。经过长时间的搜索,我找到了以下顺序。C:\Program Files\MySQL\MySQL Server 8.0\etc 和文件 mysqlrouter.conf.sample。 这里我下载了一个 my.cnf 文件并将其放入文件夹中。不幸的是没有结果,因为我不知道如何设置 MySql 以便服务器使用这个文件。
有谁知道我该如何解决这个错误?或者我如何配置 MySql Server 首选项设置 max_allowed_packet 或超时?
主要的:
SQL连接器:
python - How to use pandas.to_sql but only add row if row doesn't exist yet
I have some experience with python but very new to the SQL thing and trying to use pandas.to_sql to add table data into my database, but when I add I want it to check if the data exists before append
This are my 2 dataframes
So here I use the pandas to_sql
Here I check my data inside the database file
But I want my database to look like this, so I don't want to add the duplicate data to my database
Is there any option I can set or some line of code to add to make this happend?
Thankyou!
edit: There are some SQL code to only pull unique data, but what I want to do is don't add the data to the database in the first place
python - Pandas:Python TO_SQL 函数插入的记录数
我正在使用 Pythonto_sql
函数将数据从 Pandas 数据框中插入到数据库表中。
我能够在数据库表中插入数据,但我想知道在我的代码中插入了多少条记录。如何知道插入的记录数(我不想再写一个查询来访问数据库表来获取记录数)?
另外,有没有办法查看这个函数执行的日志。比如执行了哪些查询等。
python-3.x - 如何忽略 Dataframe to_sql 方法中的错误
我正在使用 Pandas DataFrame.to_SQL() 将数据从数据框插入到表中。如果即使单个记录也存在加载问题,也不会加载任何内容,例如:如果整数列在一行中有字符数据,或者日期格式在一条记录中无效等。
如何忽略这些错误?我想至少加载有效的数据,而不是在这种情况下根本不加载任何东西。
sql-server - 使用 pandas to_sql 将数据框附加到 sql server 中的现有表会产生 IntegrityError
我试图将我的 pandas 数据框附加到 sql server 中的现有数据表中,如下所示。我在数据中的所有列名都与数据库表完全相同。
但它失败了,我收到如下错误:
我不知道这意味着什么以及我应该怎么做才能让它发挥作用。看起来问题是IDENTITY_INSERT is set to OFF
?感谢是否有人可以帮助我理解为什么以及我可以做什么。谢谢。
python - 大型 Dask/Pandas 数据帧(27M 行 x 52 列).to_csv 或 .to_sql MemoryError
长话短说,我一直在努力解决内存问题(以及执行时间)dask
/pandas
编写大型数据框to_sql
,或者to_csv
是否有人可以指出我正确的方向(下面有更多详细信息)?
我将两个大的 .csv 文件附加在一起以形成一个更大的 .csv 文件(27M 行 x 52 列),dask
以便节省内存而不是使用pandas
,因为我的内存不足或接近它。
从那里,我只是试图写入 a .csv
,但我再次耗尽内存,试图用于.compute()
从 dask 数据帧转换为 pandas 数据帧并写入文件。我想把这个问题集中在如何简单地将这个东西放入 .csv 而不会耗尽内存。从那里,我计划使用 SQL Server 的导入向导将文件导入数据库中的新表。请参阅下面的代码,了解我如何读取和concat
'ing 作为 dask 数据帧,转换为 pandas 数据帧,然后在内存不足之前尝试写入 .csv:
在观看 python 接近 38 GB 的已提交物理内存后,我在第四行或第五行遇到内存错误:
在任何人提到它之前,我也孜孜不倦地尝试过to_sql
,但没有成功,因为最终目标是将这些数据放入 SQL Sever 数据库中。它一直持续下去,我遇到了sqlalchemy
's 的内存错误to_sql
。更好的是,我希望我可以直接写入 SQL Server,这就是我尝试过的:
我也试过:df6.to_sql('New_Table', con=engine, if_exists='replace', index=False, chunksize=40, method='multi')
#有2098个参数的限制,这就是为什么chunksize=40(40*52列=2080,所以小于限制。反正这比只传递fast_executemany=True
给要慢create_engine)
不幸的是,上面提到的尝试以及sqlalchemy
我研究的其他一些 python 方法.to_sql
只是内存不足,或者操作需要很长时间(一夜之间),我不得不杀死它。
在 52 列和 2750 万行中,我猜每个单元格的平均字符串大小约为 20 个字符(至少对于文本列而言)。我必须做一些不同的事情才能将这些数据导入 SQL Server 数据库,但我真的很挣扎,我在这个项目之前to_sql
或to_csv
之前从未遇到过更多数据的问题。
python - 如何加快熊猫 to_sql
我正在尝试使用 pandas to_sql 将数据上传到 MS Azure Sql 数据库,这需要很长时间。我经常在睡觉前运行它并在早上醒来,它已经完成但花了几个小时,如果出现错误,我无法解决它。这是我的代码:
然后我为 sql 摄取运行此命令:
我已经玩过块大小,甜蜜点似乎是 100,考虑到我通常尝试一次上传 800,000-2,000,000 条记录,这还不够快。如果我将其增加超过该值,我将收到一个似乎仅与块大小有关的错误。
sql-server - 熊猫数据框到 SQL Server
我有一个 API 服务,在这个服务中,我将 pandas 数据帧结果写入 SQL Server。
但是当我想向表中添加新值时,我无法添加。我使用了 append 选项,因为在文档中它说它向数据框添加了新值。我没有使用替换选项,因为我不想每次都放下我的桌子。
我需要在保留旧值的同时将新值发送到数据库表。
除了 pandas 方法,我已经研究过任何其他方法或to_sql
方法,但我只能在任何地方看到 pandas。
有人对此有任何想法吗?
谢谢。
python - 如何在不截断旧数据的情况下从 pandas 数据框中追加一个表
我有一个rate_card
如下所示的表格,我使用它从数据框中插入了该表格
表内的当前数据
我有新的集合数据需要再次插入到表中
新数据
预期产出
我当前的代码正在截断并加载表格新数据。我想要旧数据并将新数据附加到表中。这怎么能在python中完成?