dataFrame 写入 sqlserver 新表
时间: 2023-02-12 19:08:30 浏览: 101
可以使用 Python 的 pandas 库中的 to_sql 方法将 DataFrame 写入 SQL Server 中的新表。语法类似如下:
df.to_sql('table_name', con=engine, if_exists='replace', index=False)
其中,'table_name' 是新表的名称,con 是连接 SQL Server 的引擎,if_exists='replace' 表示如果表已存在,则先删除再创建新表。如果你希望在原表的基础上进行更新,可以将 if_exists 改为 'append'。
相关问题
python将dataframe写入SQL server
可以使用`pandas`的`to_sql`函数将`dataframe`写入SQL Server数据库中。
首先需要安装`pyodbc`库,然后使用`pandas`连接数据库并将数据写入数据库中。以下是一个示例代码:
```python
import pandas as pd
import pyodbc
# 连接数据库
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=your_server_name;DATABASE=your_database_name;UID=your_username;PWD=your_password')
# 读取数据到dataframe中
df = pd.read_csv('your_data.csv')
# 将dataframe写入数据库
df.to_sql('your_table_name', conn, index=False, if_exists='replace')
```
其中,`to_sql`函数的参数说明如下:
- `your_table_name`:要写入的表名。
- `conn`:连接到数据库的连接对象。
- `index=False`:不要将`dataframe`的索引写入数据库。
- `if_exists='replace'`:如果表已经存在,则替换原有表中的数据。
需要注意的是,`pyodbc`库的安装和连接字符串的参数需要根据你自己的实际情况进行修改。
用python把dataframe写入sql
在Python中,可以使用pandas库将DataFrame数据写入SQL数据库。这里以常见的几种方式为例:
1. **sqlite**: 如果你使用的是SQLite数据库,可以直接利用`to_sql()`函数。首先,确保安装了`pandas`、`sqlalchemy`和`sqlite3`库。
```python
import pandas as pd
from sqlalchemy import create_engine
# 创建engine连接
engine = create_engine('sqlite:///your_database.db')
# 假设df是一个DataFrame
df.to_sql(name='your_table_name', con=engine, if_exists='replace') # replace表示如果表已存在则替换
```
2. **MySQL、PostgreSQL等**: 需要用到`pyodbc`(对于ODBC连接)或`psycopg2`(对于PostgreSQL),示例如下:
```python
import pandas as pd
import pyodbc
# 使用odbc连接
conn_str = (
r'DRIVER={SQL Server};'
r'SERVER=your_server;PORT=your_port;'
r'DATABASE=your_database;'
r'Trusted_Connection=yes;' # 或者提供具体的username和password
)
conn = pyodbc.connect(conn_str)
df.to_sql(name='your_table_name', con=conn, if_exists='append') # append表示追加新行
# 关闭连接
conn.close()
```
3. **SQLAlchemy**(适用于多种数据库支持):
```python
from sqlalchemy import create_engine, Table, MetaData
# 创建engine
engine = create_engine('mysql+pymysql://user:password@host/dbname', echo=True)
# 将DataFrame转换为table对象
metadata = MetaData()
table = Table('your_table_name', metadata, autoload_with=engine)
df.to_sql(table.name, engine, if_exists='replace')
```
阅读全文