如何用For Loop批量处理238个Pandas DataFrame,保留前后值不同的行
批量处理Pandas DataFrame:保留before与after列值不同的行
方法一:通过列表管理DataFrame(推荐)
如果你的238个DataFrame已经统一存放在一个列表(比如命名为df_list)中,直接遍历列表处理即可:
# 初始化空列表存储处理后的DataFrame processed_dfs = [] for df in df_list: # 筛选出before和after列值不同的行 diff_df = df[df['before'] != df['after']] processed_dfs.append(diff_df)
处理后processed_dfs列表中的每个元素就是对应原始DataFrame筛选后的结果。
方法二:针对命名有规律的分散变量
如果你的DataFrame是以df1、df2...df238这样的独立变量存在,可通过globals()批量获取并生成新变量:
for i in range(1, 239): # 获取当前循环对应的原始DataFrame raw_df = globals()[f'df{i}'] # 执行筛选逻辑 filtered_df = raw_df[raw_df['before'] != raw_df['after']] # 将结果保存为onlydiffs_df1、onlydiffs_df2...这类命名的变量 globals()[f'onlydiffs_df{i}'] = filtered_df
内容的提问来源于stack exchange,提问作者EMC
相关产品推荐
相关产品推荐

