更新SQLite版本3.5.0后。可以使用SQL数学函数。如果我在pyhcarm查询中使用它,它工作得很好,但是我不能在python代码中执行查询。
然后我收到了以下错误消息:
熊猫。木卫一。sql。DatabaseError:在sql“从增加中选择日志(增加.s1)”上执行失败:没有这样的函数:log。
我用以下代码执行它:
import pandas as pd
conn = sqlite3.connect('p1_database.db')
sql = "Select log(increase.s1) from increase"
pd.read_sql_query(sql, con=conn)
我犯了什么错?我没看见。
如果未启用数学函数,则可以通过将log函数应用于列并返回序列来解决此问题。
import sqlite3
import pandas as pd
import math
with sqlite3.connect(":memory:") as conn:
cur = conn.cursor()
cur.execute("create table increase(s1 integer)")
cur.execute("insert into increase (s1) values (1)")
cur.execute("insert into increase (s1) values (2)")
cur.execute("insert into increase (s1) values (100)")
df = pd.read_sql_query('SELECT * FROM increase', conn)
print(df)
s = df['s1'].map(lambda x: math.log10(x))
print(s)