【发布时间】:2021-03-11 21:20:01
【问题描述】:
假设我有这个数据框:
REFERENCE = ["GZF882348G", "SFGUZBJLNJU", "FTLNGZ242112", "DFBHGVGHG543"]
IBAN = ["FR7343563", "FR4832545", "FR9858331", "FR2001045"]
DEBIT = [26, '', 856, '']
CREDIT = ['', 324, '', 876]
MONTANT = [641, 33, '', 968]
df = pd.DataFrame({'Référence' : REFERENCE, 'IBAN' : IBAN, 'Débit' : DEBIT, 'Crédit' : CREDIT, 'Montant' : MONTANT})
在我的数据库中插入此类数据时存在格式问题。 “Débit”、“Crédit”、“Montant”列被定义为获取浮点数作为数据。然而,这些列的数据不仅是整数,我也有空字符串,这是我的问题。我知道我必须编写一个条件,用 SQL 格式的“Null”值替换空字符串,但是我不知道如何在 python 或 SQL 中执行此操作。我正在发现/学习 SQL 环境。
这是我的代码:
import pandas as pd
import pyodbc
server = '...'
database = '...'
username = '...'
password = '...'
driver = '...'
connection = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+password)
cursor = connection.cursor()
for i, row in df.iterrows():
sql_exe = "INSERT INTO dbo.tbl_data_xml (Réference,IBAN,Débit,Crédit,Montant) VALUES (?,?,?,?,?)"
cursor.execute(sql_exe, tuple(row))
connection.commit()
任何人都可以帮助我。
谢谢
【问题讨论】: