【问题标题】:Import data from python dataframe to sql database将数据从python数据框导入sql数据库
【发布时间】:2021-05-19 04:28:02
【问题描述】:

我需要你的帮助。

我有一个信息列表,其形式为 list= [x0, x1,...x_end] (其中 x0 = [name, phone number....] => 一个人的大约 25 个详细信息)

我将列表更改为数据框,现在我想将数据推送到 SQL Server 数据库中。

我使用这行代码将单个数据点插入到我的数据库中

cursor.execute('''
                INSERT INTO Table (name of all the columns)
                VALUES
                (all value of a certain row)
                ''')

conn.commit()

现在我想将列表或数据框中的所有行推送到数据库。

我尝试类似:

def insert_sql(x):
    cursor.execute('''INSERT INTO Table (name of all the columns)  VALUES(x)''') 
    conn.commit()
for i in list:
    insert_sql(i)

但它不起作用。

有什么想法吗? 此外,还有很多列。有什么方法可以自动插入行而不像我上面所做的那样列出所有列的名称?

【问题讨论】:

    标签: python sql dataframe


    【解决方案1】:

    Pandas 提供了直接将数据帧写入数据库的功能,请使用以下功能

    DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)

    首先创建一个表:

    cursor.execute('CREATE TABLE Table_name (Brand text, Price number)')
    conn.commit()
    

    接下来使用 to_sql 插入记录:

    your_df.to_sql('Table_name', conn, if_exists='replace', index = False)
    

    参考:to_sql

    【讨论】:

    • 将尝试该功能。如果表已经存在,我是否需要像 SQL 表中的名称一样命名 df 中的列?
    • 是的,df中的列名和sql表应该匹配
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2014-11-21
    • 2018-04-17
    相关资源
    最近更新 更多