python - 处理 pandas read_sql() 中可选块大小的函数
问题描述
我正在为用户构建一个功能,以轻松输入 SQL 查询/脚本并在 pandas 数据框中获取结果,作为我工作场所最终用户的更广泛的简化工具集的一部分。
我现在遇到的问题是我需要实现pd.read_sql()
chunksize参数,它将输出pd.read_sql()
从 a更改pd.DataFrame
为a iterator object
。
因此,在实施之前的关键片段chunksize
是:
outputs = {} # Dict to store the dataframe outputs
counter = 0
for command in tqdm(commands):
try:
# If SELECT statement, read into dict of dataframes
if command.upper().strip()[:3] == "SEL":
outputs[counter] = pd.read_sql(command, con):
counter += 1
而要处理chunksize
可选选择参数的情况,我会处理它:
outputs = {}
counter = 0
for command in tqdm(commands):
try:
if command.upper().strip()[:3] == "SEL":
for chunk in pd.read_sql(command, con, chunksize=chunksize):
outputs[counter] = chunk
counter += 1
我正在寻找是否有一种干净的方法来动态处理用户选择或不选择chunksize
参数。我当然可以使用一个if/else
语句,但我已经非常接近too many branches / nests
(又名制作箭头代码)的 pylint 错误,我觉得应该有一种方法来动态处理这个问题。非常感谢有关最干净/最有效方法的建议。
我确实想到的一种解决方案是设置 chunksize = 1 + chunksize_selected_by_user,但我真的不知道总是使用 chunksize 的效率影响是什么,当不是绝对必要的时候。
解决方案
推荐阅读
- javascript - 如何在 Vue JS 3 中的 Particle JS 背景上放置元素
- c - C - scanf 没有像我预期的那样处理空间
- swift - 具有 pod 依赖项的 XCFramework
- r - 如何使用 latex2exp 包获得粗体希腊字母和括号?
- r - 根据R中的向量改变矩阵的元素
- authentication - 身份验证作为服务将休息服务器暴露给外部服务
- jenkins - 如果 CICD 中的 e2e 测试自动化失败,微服务回滚方法
- powershell - 为什么日期时间对象之间的比较会导致 powershell 崩溃?
- java - 在使用改造从服务器获取数据之前显示进度条
- stream - RTCPeerConnection replaceTrack 仅更改远程对等方的流