我想在Oracle中的表中添加pandas(pandame)。但这段代码删除了表中的所有行:(
我的矩阵和我的结果变成这样:
0, 0, 0, ML_TEST, 0, 5
0, 0, 0, ML_TEST, 0, 6
字符串
下面的代码块:
import cx_Oracle
import pandas as pd
from sqlalchemy import types, create_engine
dataset = pd.read_csv("denemedf.txt", delimiter=",")
print(dataset)
from sqlalchemy import create_engine
engine = create_engine('oracle://***:***@***:***/***', echo=False)
dataset.to_sql(name='dev_log',con=engine ,if_exists = 'append', index=False)
型
我怎样才能将这个框架的行追加到表的最后一行,而不删除这个表中的现有行?
现在我又试了一次,现在追加到最后,但在第一次尝试它删除了所有现有的行。如何才能做到这一点有效地没有造成任何问题?
实际上问题是因为这个表的模式而发生的。这个表在gnl所有者中,但是我连接了prg。所以它找不到这个表并创建了另一个。这是任何方法来写入所有者或模式到这个函数中吗?
3条答案
按热度按时间uttx8gqw1#
我认为这可能会有所帮助:
字符串
提供的插入权限已授予表
tbl_deneme
的模式prg
(* 连接gnl后->
grant insert on tbl_deneme to prg
*)其中假定您的文本文件(
denemedf.txt
)是型
此外,可以提供一个动态选项,该选项将通过使用第一行的列名创建一个表 if not exists,并根据从第二行导出的 values 列表的拆分元素插入值,而无需逐个显式指定变量列表,还可以提供沿着使用
cursor.executemany
的更高性能选项,例如型
uwopmtnx2#
考虑到data_df是一个框架,它可以在3行以下完成
字符串
at0kjp5o3#
字符串
dev_log
直接用作表名,engine
直接用于连接not name ='dev_log'和con = engine是参数:
append: Insert new values to the existing table
所以我认为它将工作追加新行到现有的表,它不会从现有的表delte任何行
pandas.DataFrame.to_sql