我在将 CSV 文件上传到 MS SQL Server 中的表时遇到问题,CSV 文件有 25 列,标题与 SQL 中的表同名,该表也有 25 列。当我运行脚本时,它会引发错误
params arg (<class 'list'>) can be only a tuple or a dictionary
Run Code Online (Sandbox Code Playgroud)
将此数据导入 MS SQL 的最佳方法是什么?CSV 和 SQL 表都具有完全相同的列名。
这是代码:
import csv
import pymssql
conn = pymssql.connect(
server="xx.xxx.xx.90",
port = 2433,
user='SQLAdmin',
password='xxxxxxxx',
database='NasrWeb'
)
cursor = conn.cursor()
customer_data = csv.reader('cleanNVG.csv') #25 columns with same header as SQL
for row in customer_data:
cursor.execute('INSERT INTO zzzOracle_Extract([Customer Name]\
,[Customer #]\
,[Account Name]\
,[Identifying Address Flag]\
,[Address1]\
,[Address2]\
,[Address3]\ …Run Code Online (Sandbox Code Playgroud) 我无法删除一列中包含字符串的文本文件中的行。到目前为止,我的代码无法删除该行,但它能够读取文本文件并将其作为 CSV 文件保存到单独的列中。但行没有被删除。
这是该列中的值的样子:
Ship To or Bill To
------------------
3000000092-BILL_TO
3000000092-SHIP_TO
3000004000_SHIP_TO-INAC-EIM
Run Code Online (Sandbox Code Playgroud)
还有 20 多列和 50,000k 多行。所以基本上我试图删除所有包含字符串'INAC'或'EIM'.
import csv
my_file_name = "NVG.txt"
cleaned_file = "cleanNVG.csv"
remove_words = ['INAC','EIM']
with open(my_file_name, 'r', newline='') as infile, \
open(cleaned_file, 'w',newline='') as outfile:
writer = csv.writer(outfile)
for line in csv.reader(infile, delimiter='|'):
if not any(remove_word in line for remove_word in remove_words):
writer.writerow(line)
Run Code Online (Sandbox Code Playgroud) 我正在使用Pandas来创建新列,该列将搜索整个列中的值[1-100],并将计算小于当前行的值。
请参见下面的[df]示例:
[A][NewCol]
1 0
3 2
2 1
5 4
8 5
3 2
Run Code Online (Sandbox Code Playgroud)
本质上,对于每一行,我需要查看整个A列,并计算比当前行少多少个值。因此,对于值5,有4个值小于(<)小于5(1,2,3,3)。
最简单的方法是什么?
谢谢!
我有一个查询,我正在使用来自大约一百万行的 2 个表的内部联接。我正在尝试运行查询,因此它只获取上个月的数据。但是,使用 getDate() 函数需要很长时间。但是,当我以“2016-12-01”和“2017-01-01”这种格式输入日期时 - 它真的很快。如何修改查询以使其运行得更快?我读到我可能必须创建一个非聚集索引,但我还不太擅长这些。
select
custKey,
sum(salesAmt) as Sales,
sum(returnAmt) as Credit,
(sum(salesAmt) - sum(returnAmt)) as CONNET
from
[SpotFireStaging].[dbo].[tsoSalesAnalysis]
inner join
[SpotFireStaging].[dbo].OOGPLensDesc as o on tsoSalesAnalysis.ItemKey = O.ItemKey
where
PostDate between --DATEADD(MONTH, DATEDIFF(MONTH,0, GETDATE())-1,0 )
--AND DATEADD(MS, -3,DATEADD(MM, DATEDIFF(M,-1, GETDATE()) -1, 0))
'2016-12-01' and '2017-01-01'
group by
custkey
Run Code Online (Sandbox Code Playgroud) 我在解决以下问题时遇到困难。
我有一个df['subjects']有字符串列表的熊猫。
df['subjects'].head(3) =
0['B:1187', 'B:1188', 'P:123456', 'B:62']
1['G:1', 'G:1C', 'G:21', 'G:3', 'G:30']
2['B:71', 'E:D', 'G:6J', 'P:125467', 'B:1296', 'P:789456']
Run Code Online (Sandbox Code Playgroud)
基本上我需要的是以下内容..
df['subjects'] =
123456
None
125467,789456
Run Code Online (Sandbox Code Playgroud)
我只需要返回具有的值 P:XXXXX
我试过使用 for 循环,但我一直得到错误的值。
我是python的新手,但是我在阅读包含以"|"分隔的数据的文本文件时遇到了问题 作为分隔符.我如何将文件分成CSV格式的列.
import csv
my_file_name = "NVG.txt"
cleaned_file = "cleanNVG.csv"
with open(my_file_name, 'r') as infile, open(cleaned_file, 'w') as outfile:
data = infile.read()
data = data.replace("|","")
outfile.write(data)
Run Code Online (Sandbox Code Playgroud)
这段代码摆脱了| 空白但所有数据现在只在一列中.我该如何正确格式化?我提前感谢您的帮助.