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

如何在pandas DataFrame遍历行时跳过列标题(ID3开发场景)

解决方案

1. 正确读取CSV文件

首先不要使用header=None参数,pandas读取CSV默认header=0,会自动将文件第一行识别为列名,后续行识别为数据行,刚好符合你的需求:

import pandas as pd
# 训练集、测试集读取逻辑一致
train_df = pd.read_csv("训练集路径.csv")
test_df = pd.read_csv("测试集路径.csv")

2. 按列遍历(适配ID3属性概率计算场景)

你之前使用iteritems()(pandas 1.5+版本推荐用items(),向下兼容iteritems())遍历列时额外输出列名,是因为直接打印了完整的Series对象,Series默认会携带列名作为name属性输出。调整遍历逻辑,单独打印列名到Processing行,再逐个遍历列内元素即可:

# 遍历每个属性列
for col_name, col_series in train_df.items():
    # 仅在Processing行展示列名
    print(f"Processing 列名:{col_name}")
    # 遍历当前列的所有行数据
    for row_idx, value in col_series.items():
        # 仅输出行索引、对应值、dtype信息
        print(f"行索引:{row_idx} | 对应值:{value} | dtype:{col_series.dtype}")

3. 按行遍历(按需选择)

如果你的逻辑需要按行遍历,使用iterrows()方法即可,遍历范围仅包含数据行,不会将表头作为第一行数据输出:

for row_idx, row_data in train_df.iterrows():
    print(f"当前行索引:{row_idx}")
    # 输出当前行所有属性值
    print(row_data.values)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:24:05