问题标签 [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-3.x - 我得到 TypeError:在数据帧 python 3 上使用 to_sql 时,不能在类似字节的对象上使用字符串模式
您好我正在尝试使用 df.to_sql 将数据帧写入我的 sql 数据库,但是我收到错误消息:TypeError: cannot use a string pattern on a bytes-like object。我正在使用 Python 3。
我在我的驱动器上使用了一条路径,很遗憾我不能分享。但是当我只想使用打开 csv 文件时它工作正常。
df = pd.read_csv(path, delimiter=';', engine='python', low_memory=True, encoding='utf-8-sig')
我正在使用编码项,否则它们在我的索引列中是一个奇怪的对象。但也没有使用编码我得到同样的错误。
我也在df.dtypes
我的数据框上使用过,但没有字节对象。只有 int、objects 和 floats。我还试图弄清楚我的数据框中是否有类似字节的对象,bytes(df[x]).decode('utf-8')
但我只得到整数列而不是对象列。我试图解码然后使用 to_sql 但没有任何帮助。
df.to_sql('DMM_2300', con=engine, index=False, if_exists='append')
有人可以帮忙吗?
python-3.x - 在数据帧上使用 to_sql 时,%b 需要一个类似字节的对象,或实现 __bytes__ 的对象,而不是 'str'
使用这个基本的 read_csv 和 to_sql 脚本时,我得到以下错误代码。有人可以解释一下我的系统做错了什么。我曾经工作过,但过了一段时间我收到了这些错误消息。我还查看了我的 MySQL 数据库,但它也可以上传 varchar(256)。
python - 当列包含空值时,Pandas to_sql 忽略 dtype
第一个 SO 问题。我希望这是足够的描述性。
熊猫 0.25,甲骨文 11g
我有一个从 csv 读取的数据框。它包含数字、字符串和日期数据的混合。
.astype(str)
我使用,.astype(int)
和强制数据框中的数据类型.to_datetime
。
然后我创建一个 dtype 字典来选择我想要的数据类型。
当数字列中有一些空值types.NUMBER
并在 Oracle 表中types.INTEGER
创建一个。FLOAT
应该是NUMBER(38,0)
,特别是如果我使用types.INTEGER
. 定义为 types.NUMBER
并包含所有非空整数的键列NUMBER(38,0)
按预期创建。
当存在所有为空的列但已.astype(str)
应用并且types.VARCHAR(300)
列的 dtype 也像FLOAT
在 Oracle 中一样创建时。
我需要if_exists='append'
在 to_sql 中使用,因为表会收集历史记录,所以我迫不及待地等待 VARCHAR 列接收数据。尽管我在测试期间一直在使用if_exists='replace
以确保删除并重新创建表。
有没有办法解决这些问题,由数据中的空值引起,导致数据类型选择不正确?我不应该需要在字符串中使用空格(即'')和整数使用0,我需要空值作为空值。
日期列中的空值,即使整个列都是空值也有效,并DATE
根据要求在 Oracle 中创建。
编辑:字符串到 VARCHAR 问题实际上是一个被捕获和错误处理的异常的问题。
数字仍然是一个必须单独处理的问题,我将在解决方案中添加一个答案。
python - Python/SQL 加载错误:对于准备好的语句,超出了每个会话 20 MB 的内存限制
我正在使用 Pandas to_sql 加载仅包含大约 6k 行数据的 CSV。我有一个非常大的 Azure Synapse DW,容量绰绰有余,但我遇到了一个问题,它会加载大约 1.5k 行,然后因内存不足错误而失败:
我的代码如下所示:
我试图设置一个块大小,但似乎没有影响。为什么它在这么小的数据集上苦苦挣扎,我该如何加载完整的 csv 文件?
python - 如何创建 to_sql create_engine
我正在尝试将数据框信息添加到 PostgreSQL 的表中。
但我不知道如何创建引擎。它很可能与与 SQL 服务器的连接有关,但我不知道如何创建它。
我在 to_sql 文档上看到的例子是:
我尝试的是:
django-models - django中的pandas to_sql:将外键插入数据库
使用 pandas to_sql 函数时有没有办法插入外键?
在将它们添加到数据库(postgres)之前,我正在Consultation
使用 django 中的 pandas 处理上传的 s(n=40k)。我逐行完成了这个工作,但这需要 15 到 20 分钟。这比我希望我的用户等待的时间要长,所以我正在寻找更有效的解决方案。
consultations
我尝试了 pandas to_sql,但在调用to_sql
函数之前,我无法弄清楚如何将两个外键关系作为列添加到我的数据框中。有没有办法将 Patient 和 Praktijk 外键添加为数据框中的列consultations
?
更具体地说,当逐行插入时,我使用类型 Patient
的对象或Praktijk
在数据库中创建新的咨询时。但是,在数据框中,我不能使用这些类型,因此不知道如何正确添加外键。是否可能有一个类型的值object
或int
(患者的 id?)可以替代 Patient 类型的值,从而设置外键?
Consultation
型号:
to_sql
来电:
如果以上是不可能的,是否有其他更有效的解决方案的提示?
pandas - Sqlalchemy Teradata ODBC 17.00 to_sql QVCI 错误 CAST CLOB 类型为 DATE
我正在尝试将 pandasto_sql
用于 Teradata 数据库中的现有表,但出现此 QVCI 错误。经过一些在线研究,我将我的 ODBC 驱动程序升级到 17.00,但我仍然得到同样的错误。
现有表:
我在用sqlalchemy_teradata
这是代码:
a_df.to_sql(name='TEST_LA_TEMP', con=engine, schema='DB', if_exists='replace', index=False)
然后我尝试指定类型,但得到了同样的错误。
错误:
当我使用相同的代码导入新(不存在)表时,它工作正常,但CLOB
作为大多数列的数据类型返回
然后我尝试将CLOB
类型转换为正确的类型,但它说CLOBs can only be converted to CHAR TO VARCHAR
缺少我的update_date
专栏。
如果我改用它,我可以让它工作if_exists='append'
,然后再次删除并创建表。但我仍然想了解为什么以及如何解决这些错误。
问题:
- 直接为 Teradata 启用 QVCI 的语法是什么?
- 有没有办法将 CLOB 转换为 DATE?如何?
- 为什么
if_exists='replace'
依赖 QVCI 而不是if_exists='append'
?
谢谢!
database - 无法将数据帧发送到 oracle。(将数据框导出到 oracle)
无法将数据从 pandas(Dataframe)发送到 oracle 数据库。
python - CSV 到 SQL Server:批量导入噩梦(T-SQL 和/或 Pandas)
我正在尝试将.CSV
文件批量插入 SQL Server,但没有取得多大成功。
一点背景:
1.我需要在 SQL Server (2017) 数据库中插入 1600 万条记录。每条记录有 130 列。我在我们的一个供应商的 API 调用的结果中有一个字段.CSV
,我不允许提及。我有整数、浮点数和字符串数据类型。
2.我尝试了通常的方法:BULK INSERT
但我无法通过数据类型错误。我在这里发布了一个问题,但无法使其发挥作用。
3.我尝试使用 python 进行实验,并尝试了我能找到的所有方法,但pandas.to_sql
每个人都警告说它非常慢。我遇到了数据类型和字符串截断错误。与来自 的不同BULK INSERT
。
4.没有太多选择,我尝试了pd.to_sql
,虽然它没有引发任何数据类型或截断错误,但由于我的 tmp SQL 数据库空间不足而失败。尽管我有足够的空间并且我的所有数据文件(和日志文件)都设置为无限制的自动增长,但我也无法传递此错误。
我当时就卡住了。我的代码(对于这pd.to_sql
件作品)很简单:
我不确定还有什么可以尝试的,欢迎任何建议。我见过的所有代码和示例都处理小型数据集(列不多)。我愿意尝试任何其他方法。我会很感激任何指示。
谢谢!