【问题标题】:Pandas dataframe to sql database熊猫数据框到sql数据库
【发布时间】:2023-01-08 02:08:58
【问题描述】:

我创建的用于存储实验结果和一些后处理的 pandas 数据框出现问题。整个数据框的创建大约需要6个小时,因此我需要存储数据库,所以我可以将它重新加载到 jupyter。这里出现了我的问题。

我认为最好的方法是从我的 pandas 数据框创建一个 sql 数据库。但我得到错误:

InterfaceError: Error binding parameter 1 - probably unsupported type.

您将在下面找到生成此错误的最小可重现示例。我建议它发生,因为我有来自不确定性工具箱以及麻木的.我怎样才能解决这个问题,或者有更好的主意来实现我的目标?

我会非常感激。

干杯, 拱

from uncertainties import ufloat
import pandas as pd
from sqlalchemy import create_engine
import numpy as np

a = ufloat(1,0.1)
b = ufloat(2,0.2)
b = ufloat(3,0.3)

c = np.array([1,2,3])
d = np.array([3,4,5])
e = np.array([6,7,8])

data = {
  "A": [a, b, c],
  "B": [a, a, c],
}

df = pd.DataFrame(data)

df['C'] = pd.Series(dtype=object)

df['C'] = [c,d,e]

display(df)

engine = create_engine('sqlite://', echo=False)
df.to_sql('sql_db', con=engine)

【问题讨论】:

  • uncertainties.ufloat 应该映射到数据库中的什么数据类型?

标签: python sql pandas


【解决方案1】:

SQLAlchemy 中没有uncertainties.ufloat 的数据类型映射。

from sqlalchemy import create_engine, select, text
from uncertainties import ufloat

a = ufloat(1, 0.1)

engine = create_engine("sqlite://", echo=True)

with engine.connect() as con:
    con.execute("SELECT ?", a)

加薪

ProgrammingError: (sqlite3.ProgrammingError) Error binding parameter 1: type 'Variable' is not supported
[SQL: SELECT ?]
[parameters: (1.0+/-0.1,)]
(Background on this error at: https://sqlalche.me/e/14/f405)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 2015-11-12
    • 2014-02-01
    • 1970-01-01
    • 2021-11-09
    相关资源
    最近更新 更多