如何遍历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
相关产品推荐
相关产品推荐

