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

Pandas读取CSV列报KeyError及指定行列取值循环实现需求

问题解决与实现方法

一、修复KeyError: 'Name'问题

你的CSV文件用空格作为分隔符,但pd.read_csv()默认以逗号,作为分隔符,导致Pandas无法正确识别列名,从而抛出KeyError。解决方法是指定分隔符参数:

import pandas as pd

# 指定sep为正则表达式匹配任意数量的空格
CSV_file = pd.read_csv('data.csv', sep='\s+')
# 现在可以正常获取Name列
name = CSV_file['Name']

验证列名是否正确读取的方法:

# 打印所有列名,确认是否包含'Name'
print(CSV_file.columns.tolist())

二、实现循环提取指定列并进行条件判断

以判断Age列是否大于22为例,遍历指定列数据并输出符合条件的行:

方法1:遍历行迭代器

import pandas as pd

CSV_file = pd.read_csv('data.csv', sep='\s+')

# 遍历每一行,判断Age>22则打印整行数据
for index, row in CSV_file.iterrows():
    if row['Age'] > 22:
        print(row)
        # 也可以只打印指定列,比如Name和Age
        # print(f"Name: {row['Name']}, Age: {row['Age']}")

方法2:Pandas矢量化筛选(更高效)

如果数据量较大,推荐用Pandas的矢量化操作代替循环,效率更高:

# 直接筛选Age>22的行
filtered_data = CSV_file[CSV_file['Age'] > 22]
# 打印筛选结果
print(filtered_data)
# 若要逐行打印,可结合iterrows()
for index, row in filtered_data.iterrows():
    print(f"符合条件的用户:{row['Name']},年龄:{row['Age']}")

三、获取CSV中指定行列的具体值

1. 通过列名和索引取值

# 获取第0行(第一行数据)的Name列值
first_name = CSV_file.loc[0, 'Name']
print(first_name)  # 输出:Ben.

# 获取第2行的location列值
second_location = CSV_file.loc[2, 'location']
print(second_location)  # 输出:LA

2. 通过位置索引取值(iloc)

# 获取第1行(索引从0开始)第0列的值
row1_col0 = CSV_file.iloc[1, 0]
print(row1_col0)  # 输出:Jack

# 获取第3行第2列的值
row3_col2 = CSV_file.iloc[3, 2]
print(row3_col2)  # 输出:Lisbon

3. 获取整行/整列数据

# 获取第4行所有数据
row4 = CSV_file.loc[4]
print(row4)

# 获取整列Age的数据
age_column = CSV_file['Age']
print(age_column)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:49:58