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

Python:如何按行提取DataFrame除首列外的所有值及代码修正

问题解决:提取DataFrame除第一列外的所有值为一维列表

原代码的错误点

  • df.iterrows(0,1):iterrows()方法不接受参数,它默认遍历DataFrame的每一行,返回(行索引, 行数据)的元组
  • values.Append(values):方法名拼写错误(应为小写append),且错误地将列表自身添加到列表中,逻辑完全错误
  • 未正确筛选每行中除第一列外的目标数据

修复后的循环实现(适合小数据集)

如果坚持用循环方式,修正后的代码如下:

import pandas as pd
df = pd.DataFrame([['A', 2, 4, 7], ['B', 6, 1, 5], ['C', 4, 2, 2], ['D', 3, 9, 8]], columns = ["Pen", "A", 'B', 'C'])

values = []
# 用_接收不需要的行索引,row是当前行的Series对象
for _, row in df.iterrows():
    # 跳过第一列,将剩余值转成列表后批量加入结果
    values.extend(row[1:].tolist())

print(values)
# 输出:[2, 4, 7, 6, 1, 5, 4, 2, 2, 3, 9, 8]

高效实现(适合大型DataFrame)

对于大型数据集,循环遍历效率极低,推荐使用Pandas的向量式操作:

import pandas as pd
df = pd.DataFrame([['A', 2, 4, 7], ['B', 6, 1, 5], ['C', 4, 2, 2], ['D', 3, 9, 8]], columns = ["Pen", "A", 'B', 'C'])

# 选取所有行、从第二列开始的所有列 → 转成numpy数组 → 扁平化一维 → 转成Python列表
values = df.iloc[:, 1:].values.flatten().tolist()

print(values)
# 输出:[2, 4, 7, 6, 1, 5, 4, 2, 2, 3, 9, 8]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:20:22