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

如何使用循环从pandas DataFrame中选取指定多列

问题根源

你写的代码每次循环都会重新给df1赋值,直接覆盖了上一轮循环生成的结果,所以最终只能保留最后一次循环(i=3)对应的3列,自然丢失了Amount i=2列。

解决方案

两种实现方式都可以满足必须用循环的要求:

方式1:先构造列名列表再一次性取列(推荐,性能更高)

先把固定要保留的列放进列表,再通过循环把动态生成的列名追加到列表里,最后一次性筛选所有列:

# 初始化固定保留的列
selected_cols = ['Time', 'Amount']
# 循环追加动态列名,range(2,4)正好匹配i=2、i=3
for i in range(2, 4):
    selected_cols.append('Amount i={}'.format(i))
# 一次性生成目标DataFrame
df1 = df[selected_cols]

方式2:循环逐列添加

先初始化包含固定列的DataFrame,每次循环把对应的列追加进去:

# 先取固定列,加copy避免链式索引警告
df1 = df[['Time', 'Amount']].copy()
for i in range(2, 4):
    df1['Amount i={}'.format(i)] = df['Amount i={}'.format(i)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:57:03