Python 将具有两列的变量存储到使用 SQLite 创建的 table 中

Python store variable with two columns into table created with SQLite

我创建了一个变量来存储患者 ID 和每位患者错过的预约次数。我用 SQLite 创建了一个 table,我试图将我的变量存储到我创建的 table 中,但我收到“ValueError:参数类型不受支持”的错误。到目前为止,这是我的代码:

import pandas as pd
import sqlite3

conn = sqlite3.connect('STORE')
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS PatientNoShow")
c.execute("""CREATE TABLE IF NOT EXISTS PatientNoShow ("PatientId" text, "No-show" text)""")

df = pd.read_csv(r"C:\missedappointments.csv")
df2 = df[df['No-show']=="Yes"]
pt_counts = df2["PatientId"].value_counts()

c.executemany("INSERT OR IGNORE INTO PatientNoShow VALUES (?, ?)", pt_counts)

提前感谢您的帮助!仍在学习,所以任何类型的“像我 5 岁一样向我解释”的答案都将不胜感激!此外,一旦我创建了 tables 并在其中存储信息,我将如何打印或查看输出结果?

你在

中写到这两个变量都是文本类型
c.execute("""CREATE TABLE IF NOT EXISTS PatientNoShow ("PatientId" text, "No-show" text)""")

pt_counts 包含整数,因为它计算列 PatientId 中的值,此外 .executemany() 需要 sequence 才能正常工作。

如果 PatientId 是字符串类型,这段代码应该可以工作:

import pandas as pd
import sqlite3

conn = sqlite3.connect('STORE')
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS PatientNoShow")
c.execute("""CREATE TABLE IF NOT EXISTS PatientNoShow ("PatientId" text, "No-show" integer)""") # type changed

df = pd.read_csv(r"C:/Users/bob/Desktop/Trasporti_project/Matchings_locations/norm_data/standard_locations.csv")
pt_counts = df["standard_name"].value_counts()

c.executemany("INSERT OR IGNORE INTO PatientNoShow VALUES (?, ?)", pt_counts.iteritems()) # this is a sequence