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

如何遍历DataFrame列表获取各长度并存储为指定格式列表

问题描述

我有以下几个DataFrame:

A
id A B C
1  2 2 2
2  3 3 3

B
id A B C
1  5 5 5
2  6 6 6
3  8 8 8
4  0 0 0

C 
id A B C
1  6 6 6

我需要获取每个DataFrame的长度并将其存储到一个列表中,现有列表search_list = ["A", "B", "C"]。尝试通过遍历该列表实现,示例代码如下:

my_list=[]
for i in search_list:
    my_list.append(len(search_list[i]))

但该代码无法正确运行,期望得到的输出为:

len_df =

[{'A': 2},
 {'B': 4},
 {'C': 1}]

请问如何正确实现这一需求?

解决方法

你代码出错的原因是把search_list当成字典取值,但它只是存储DataFrame名称的字符串列表,Python无法直接通过字符串访问对应变量。以下是两种可行的实现方式:

方法一:使用字典管理DataFrame(推荐)

先将所有DataFrame存入字典,再遍历字典生成目标列表:

# 把DataFrame存入字典,键为名称,值为对应DataFrame对象
df_dict = {"A": A, "B": B, "C": C}
# 推导式生成结果列表
len_df = [{name: len(df)} for name, df in df_dict.items()]

方法二:通过全局/局部变量空间获取DataFrame

如果不想额外维护字典,可以借助globals()(全局变量)或locals()(局部变量)函数获取对应名称的DataFrame:

len_df = []
for name in search_list:
    # 通过变量名称字符串从全局空间取出DataFrame
    df = globals()[name]
    len_df.append({name: len(df)})

两种方法都能生成你期望的len_df结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:20:51