Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pymssql将数据帧写入mssql?_Python_Sql Server_Pandas_Pymssql - Fatal编程技术网

Python 如何使用pymssql将数据帧写入mssql?

Python 如何使用pymssql将数据帧写入mssql?,python,sql-server,pandas,pymssql,Python,Sql Server,Pandas,Pymssql,我正在使用pymssql将df写入mssql,但没有成功 from sqlalchemy import create_engine import pymssql engine = create_engine('mssql+pymssql://sa:suzhou@localhost/test_python') data.to_sql('phill',engine) 下面有一个错误。怎么了 NoSuchColumnError: "Could not locate column in row fo

我正在使用pymssql将df写入mssql,但没有成功

from sqlalchemy import create_engine
import pymssql
engine = create_engine('mssql+pymssql://sa:suzhou@localhost/test_python')

data.to_sql('phill',engine)
下面有一个错误。怎么了

NoSuchColumnError: "Could not locate column in row for column '0'"
前5行:

    Dc_Dist Psa Dispatch_Date_Time  Dispatch_Date   Dispatch_Time   Hour    Dc_Key  Location_Block  UCR_General Text_General_Code   Police_Districts    Month   Lon Lat
3   35  D   2009-07-19 01:09:00 2009-07-19  01:09:00    1   200935061008    5500 BLOCK N 5TH ST 1500.0  Weapon Violations   20.0    2009-07 -75.130477  40.036389
4   9   R   2009-06-25 00:14:00 2009-06-25  00:14:00    0   200909030511    1800 BLOCK WYLIE ST 2600.0  All Other Offenses  8.0 2009-06 -75.166350  39.969532
5   17  1   2015-04-25 12:50:00 2015-04-25  12:50:00    12  201517017705    800 BLOCK S BROAD ST    600.0   Thefts  13.0    2015-04 -75.166412  39.940070
6   23  K   2009-02-10 14:33:00 2009-02-10  14:33:00    14  200923006310    2200 BLOCK RIDGE AVE    800.0   Other Assaults  16.0    2009-02 -75.171149  39.979586
12  22  3   2015-10-06 18:18:00 2015-10-06  18:18:00    18  201522089374    1500 BLOCK N 15TH ST    600.0   Thefts  16.0    2015-10 -75.160229  39.976134

我猜SQL Server不喜欢像0这样的列名,所以在将DF写入SQL Server之前必须重命名列

因此,您可以尝试以下解决方案:

data.add_prefix('col_').to_sql('phill',engine)

在本地服务器上运行良好,但使用pyodbc。您的数据帧是什么样子的?

这是问题所在,因为
sqlalchemy
。在我的python sit包中,有
SQLAlchemy-1.1.4-py2.7.egg-info
SQLAlchemy-1.1.5.dist-info
SQLAlchemy
。只需删除除
sqlalchemy
之外的所有列,即可解决
NoSuchColumnError:“无法在列“0”的行中找到列”

没有像0这样的列名,
索引([u'Dc_Dist',u'Psa',u'Dispatch_Date_Time',u'Dispatch_Date',u'Dispatch_Time',u'Hour',u'Dc_Key',u'Location_Block',u'UCR_General',u'Text_General_Code',u'Police_District',u'Month',u'Lon u'Lat',u'Lat',dtype='object',u'Code>,引擎=创建引擎('mssql+pymssql://sa:suzhou@localhost/test_python')
是对的吗?@runningman,对不起,在这种情况下我不知道…试着用谷歌搜索
SQLAlchemy
+
NoSuchColumnError:“无法在列的行中找到列”
Tks都是相同的MaxU。我在另一台计算机上这样做。它可以工作。可能是我的数据库的问题。
from sqlalchemy import create_engine
import pyodbc
import pandas as pd
import numpy as np

df = pd.DataFrame(index=range(3), columns=range(3), data=np.zeros((3,3)))
engine = create_engine("mssql+pyodbc://.\SQLEXPRESS/test_python?driver=SQL server")

df.to_sql('test', con=engine)