【发布时间】:2020-08-08 22:54:18
【问题描述】:
我正在将 .csv 读入数据框并将其成功推送到 SQL 数据库。不幸的是,在将 csv 发送到 SQL 数据库之前,我想删除几行。我尝试过的几种解决方案都没有奏效,我被卡住了。
示例 .csv
Name,Organization,Lifecycle Environment,Subscription Quantity,Subscription SKU
Host1,MyORG,Library,500,NRS2718
Host1,MyOrg,Library,-1,155425976806
Host2,MyOrg,DEV,250,NRS2718
Host2,MyOrg,DEV,-1,361867226799
我需要删除包含值 155425976806 和 361867226799 的数据帧的行
Name,Organization,Lifecycle Environment,Subscription Quantity,Subscription SKU
Host1,MyORG,Library,500,NRS2718
Host2,MyOrg,DEV,250,NRS2718
我的代码不会掉一行
from sqlalchemy import create_engine
import urllib
import pyodbc
import pandas as pd
df = pd.read_csv("./data.csv")
quoted = urllib.parse.quote_plus("Driver={ODBC Driver 17 for SQL Server};SERVER=10.1.1.11;uid=myuser;pwd=mypass;DATABASE=LICENSES")
engine = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(quoted))
indexSKU = df[ (df['Subscription SKU'] == 155425976806) & (df['Subscription SKU'] == 361867226799)].index
df.drop(indexSKU , inplace=True)
df.to_sql('DataTable', if_exists = 'replace', schema='dbo', con=engine)
result = engine.execute('SELECT COUNT(*) FROM [dbo].[DataTable]')
result.fetchall()
【问题讨论】:
标签: python sql-server pandas dataframe