You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建以Track值为键的DataFrame字典并通过键值取回对应DataFrame

将列表存储改为字典键值对存储

我现在运行着这样的for循环:

tracks = [1010, 2020]

df_list = []
for i in tracks:
    query = ''' quer_here '''
    df = pd.read_sql(query, con=con)
    to_dict = df.to_dict()
    df_list.append(to_dict)

这段代码会执行SQL查询,把结果转为pandas DataFrame,再转成字典存入列表。现在我可以通过pd.DataFrame(df_list[0])取回对应的DataFrame,但我想改成用循环里的i值作为键来存储每个字典,这样就能通过pd.DataFrame(df_dict[1010])或者pd.DataFrame(df_dict[2020])来取回DataFrame,请问该怎么实现?


实现方法

只需要把原来的列表df_list替换成字典df_dict,在循环中直接将i作为键、DataFrame转成的字典作为值存入即可:

基础修改版

tracks = [1010, 2020]

df_dict = {}  # 初始化空字典替代列表
for i in tracks:
    query = ''' quer_here '''
    df = pd.read_sql(query, con=con)
    to_dict = df.to_dict()
    df_dict[i] = to_dict  # 以tracks中的元素为键,存入对应字典

修改完成后,你就能通过pd.DataFrame(df_dict[1010])或pd.DataFrame(df_dict[2020])直接获取对应ID的DataFrame。

简洁写法:字典推导式

如果想让代码更紧凑,也可以用Python的字典推导式一行完成,逻辑和上面的循环完全一致:

tracks = [1010, 2020]

df_dict = {i: pd.read_sql(''' quer_here ''', con=con).to_dict() for i in tracks}

内容的提问来源于stack exchange,提问作者datashout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 01:40:24