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
我创建了一个变量来存储患者 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