gpt4 book ai didi

python - pandas.DataFrame.to_sql 的进度条

转载 作者:IT王子 更新时间:2023-10-29 06:25:30 25 4
gpt4 key购买 nike

我想将数据从大型 csv 文件迁移到 sqlite3 数据库。

我在 Python 3.5 上使用 pandas 的代码:

con = sqlite3.connect(DB_FILENAME)
df = pd.read_csv(MLS_FULLPATH)
df.to_sql(con=con, name="MLS", if_exists="replace", index=False)

是否可以打印 to_sql 方法执行的当前状态(进度条)?

我看了关于 tqdm 的文章, 但没有找到如何执行此操作。

最佳答案

不幸的是 DataFrame.to_sql 不提供逐 block 回调,tqdm 需要它来更新其状态。但是,您可以逐 block 处理数据帧:

import sqlite3
import pandas as pd
from tqdm import tqdm

DB_FILENAME='/tmp/test.sqlite'

def chunker(seq, size):
# from http://stackoverflow.com/a/434328
return (seq[pos:pos + size] for pos in range(0, len(seq), size))

def insert_with_progress(df, dbfile):
con = sqlite3.connect(dbfile)
chunksize = int(len(df) / 10) # 10%
with tqdm(total=len(df)) as pbar:
for i, cdf in enumerate(chunker(df, chunksize)):
replace = "replace" if i == 0 else "append"
cdf.to_sql(con=con, name="MLS", if_exists=replace, index=False)
pbar.update(chunksize)

df = pd.DataFrame({'a': range(0,100000)})
insert_with_progress(df, DB_FILENAME)

请注意,我在这里生成内联 DataFrame 是为了获得一个没有依赖性的完整可行示例。

结果非常惊人:

enter image description here

关于python - pandas.DataFrame.to_sql 的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39494056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com