如何遍历DataFrame列表提取实例完成计算并追加更新后的DataFrame
前置说明
你给出的list_of_dfs = [df_1, df_2, df_3]是Python列表类型,仅支持整数下标索引,无法使用'df1'这类字符串作为key取值,你实际应该是使用了字典存储结构:dict_of_dfs = {'df1':df_1, 'df2':df_2, 'df3':df_3},以下同时覆盖两种存储结构的实现方案。
需求1:遍历执行指定计算
若为列表存储
processed_list = [] for df in list_of_dfs: # 此处替换为你实际的计算逻辑,以下为示例:新增列统计每行总和 df['row_sum'] = df.sum(axis=1, numeric_only=True) processed_list.append(df)
若为字典存储(匹配你当前用字符串索引的写法)
processed_list = [] for df_name, df in dict_of_dfs.items(): # 自定义计算逻辑 df['row_sum'] = df.sum(axis=1, numeric_only=True) # 可新增来源列标记对应df的名称,方便后续溯源 df['source_df'] = df_name processed_list.append(df)
需求2:统一追加存储
方案1:合并为单个文件存储(小数据量适用)
import pandas as pd # 纵向拼接所有处理后的DataFrame merged_df = pd.concat(processed_list, ignore_index=True) # 存为csv格式 merged_df.to_csv('final_result.csv', index=False, encoding='utf-8-sig') # 存为Excel格式 merged_df.to_excel('final_result.xlsx', index=False)
方案2:逐次追加写入(大数据量适用,降低内存占用)
for idx, df in enumerate(processed_list): # 首个DataFrame写入时带表头,后续追加写入时不带表头 if idx == 0: df.to_csv('append_result.csv', index=False, encoding='utf-8-sig') else: df.to_csv('append_result.csv', index=False, encoding='utf-8-sig', header=False, mode='a')
内容的提问来源于stack exchange,提问作者idg23
相关产品推荐
相关产品推荐

