使用Pandas加载CSV文件时遇KeyError的解决方法求助
解决Pandas提取'violence'列时的KeyError问题
嗨,我之前处理CSV文件时也遇到过一模一样的问题——大多是列名不匹配导致的,很好解决。咱们一步步来搞定这个KeyError:
第一步:先搞清楚CSV里的真实列名
你以为的列名和实际CSV里的可能不一样,先打印所有列名看看:
print("CSV里的所有列名:", c_data.columns.tolist())
这样你就能明确看到,列名到底是violence、VIOLENCE,还是带空格的Violence,甚至是完全不同的暴力犯罪率这类名称。
第二步:清理列名的冗余空格
很多时候CSV导出时会给列名自动加上前后空格,导致你直接用'violence'找不到。先把所有列名的空格去掉,还可以统一转成小写方便调用:
# 去掉所有列名前后的空格 c_data.columns = c_data.columns.str.strip() # 把列名统一转成小写 c_data.columns = c_data.columns.str.lower()
之后再试提取列:
print(c_data['violence'])
第三步:如果还是找不到,试试模糊匹配找相关列
要是列名和你想的完全不一样(比如叫Violent Offenses),可以用关键词匹配来找:
# 找出所有名称里包含"viol"的列(不区分大小写) matching_columns = [col for col in c_data.columns if 'viol' in col.lower()] print("找到的相关列:", matching_columns)
这样就能定位到所有和暴力相关的列,然后用正确的列名去提取数据。
额外小技巧:查看数据完整结构
如果还是有疑问,可以用info()方法查看数据的详细信息,包括列名、数据类型等:
c_data.info()
这能帮你更全面地确认问题所在。
内容的提问来源于stack exchange,提问作者noobcat
相关产品推荐
相关产品推荐

