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

如何高效切片数据集并生成新DataFrame?Python新手求助

批量生成指定列的DataFrame高效方案

嘿,刚接触Python数据分析的话,碰到这种重复操作的问题很正常,我来帮你把这个事儿捋明白~

你之前尝试用循环的思路是对的,但问题出在循环的写法上:你直接把df_1这些变量放进tuple里,循环里的赋值并不会真正修改这些变量;而且嵌套循环完全没必要,反而会导致重复处理。

下面给你两种高效的批量处理方法,都是用Python的原生特性来减少冗余代码:

方法一:列表推导式(简洁直观)

这是最常用的批量处理方式,代码短而且可读性强:

# 第一步:把所有原DataFrame放进一个列表里
original_dfs = [df1, df2, df3, df4]
# 第二步:定义你要保留的列(替换成你自己的列名)
selected_cols = ['列名1', '列名2', '列名3']
# 第三步:用列表推导式批量生成新的DataFrame
new_dfs = [df[selected_cols] for df in original_dfs]
# 第四步:把新列表里的元素分别赋值给你需要的变量
df_1, df_2, df_3, df_4 = new_dfs

这个方法的优势是:代码极简,后续如果要新增数据集,只需要在original_dfs里添加对应的DataFrame就行,完全不用改其他逻辑。

方法二:字典映射(灵活易扩展)

如果你的数据集数量比较多,或者想更清晰地管理变量,用字典来处理会更灵活:

# 第一步:用字典存储原DataFrame,键可以自定义(这里用原变量名)
df_map = {'df1': df1, 'df2': df2, 'df3': df3, 'df4': df4}
# 第二步:定义要保留的列
selected_cols = ['列名1', '列名2', '列名3']
# 第三步:批量生成新的DataFrame字典,键改为你想要的命名规则(比如df_1)
new_df_map = {f'df_{key[-1]}': df[selected_cols] for key, df in df_map.items()}
# 第四步:把字典里的键值对转换成全局变量(这样就能直接用df_1、df_2了)
globals().update(new_df_map)

这个方法适合后续有更多数据集的场景,不用手动一个个定义变量,直接通过字典批量生成。

关键思路总结

不管用哪种方法,核心都是把重复的操作交给循环/推导式来做:

  • 先把所有需要处理的DataFrame放到可迭代的容器(列表/字典)里
  • 用一次批量操作代替四次重复的df_1 = df1[selected_cols]代码
  • 最后再把处理后的结果映射到你需要的变量名上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:47:38