Python中如何从多个有序命名的dataframe中提取指定列均值
你代码中通过字符串拼接得到的var是字符串类型,并不是你实际定义的DataFrame变量对象,因此无法调用DataFrame的列属性,才会触发对应的AttributeError。
解决方案
方案1:适配现有变量命名的快速修改
通过globals()方法获取全局命名空间中的实际DataFrame对象,修改后的代码如下:
mean_list = [] dfnum = range(1, 101) for i in dfnum: var_name = f'dataframe_{i}' # 从全局变量中取出对应名称的DataFrame对象 current_df = globals()[var_name] # 此处column替换为你实际要计算的列名,用[]取值比.属性调用兼容性更好 col_mean = current_df['column'].mean() mean_list.append(col_mean)
注意:不要用mean作为变量名,会和pandas内置的mean()方法重名,容易引发后续其他错误
方案2:更规范的写法(推荐)
后续处理批量同结构DataFrame时,建议直接将所有DataFrame存入列表或字典,不需要单独定义100个带序号的变量,后续批量操作会更便捷:
# 生成DataFrame时直接存入列表,无需单独定义dataframe_1到dataframe_100 df_list = [] for i in range(100): # 此处替换为你实际生成单个DataFrame的逻辑 current_df = 生成DataFrame的代码 df_list.append(current_df) # 直接遍历列表计算均值,一行代码即可完成 mean_list = [df['column'].mean() for df in df_list]
内容的提问来源于stack exchange,提问作者basstr1p
相关产品推荐
相关产品推荐

