看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)将以下 sqlite3 数据库中的数据分块读取,并计算 value 列所有值的和。
import pandas as pd
import sqlite3
import random
# 创建一个 SQLite 内存数据库,并生成示例数据
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
# 创建表并插入数据
cursor.execute("CREATE TABLE large_table (id INTEGER, value TEXT)")
cursor.executemany("INSERT INTO large_table VALUES (?, ?)",
[(f'{i}_v', random.randint(0, 9))
for i in range(1, 1_000_000)])
conn.commit()
conn.close()
以下为 Python 代码:
import pandas as pd
import sqlite3
import random
# 创建一个 SQLite 内存数据库,并生成示例数据
conn = sqlite3.connect(':memory:')
cursor = conn.cursor()
# 创建表并插入数据
cursor.execute("CREATE TABLE large_table (id INTEGER, value TEXT)")
cursor.executemany("INSERT INTO large_table VALUES (?, ?)",
[(f'{i}_v', random.randint(0, 9))
for i in range(1, 1_000_000)])
conn.commit()
# 一次性读取整个表
chunks = pd.read_sql("SELECT * FROM large_table",
conn,
chunksize=1000)
foo = 0
for i in chunks:
foo += i.value.astype(int).sum()
conn.close()
print(foo)
查看相关链接中的知识。
(完)
更新时间:2024-12-06 12:42:42 标签:pandas python 数据库 sqlite3