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

Pandas DataFrame提取单一城市数据失败:仅显示表头问题求助

问题排查与解决方案

可能的原因及对应解决步骤

1. 列名不匹配或数据读取异常

从你提供的数据集示例来看,原始数据列名为City,但代码中使用的是Borough列。如果实际数据集的列名并非Borough,代码自然匹配不到数据。另外示例数据里存在用I代替|的错误分隔符,会导致数据读取时列识别混乱,比如城市名可能附带多余符号或被错误分割。

  • 解决:
    • 先确认数据集实际列名:运行 print(complaints_df.columns) 查看列名,若实际是City,将代码中的complaints_df.Borough改为complaints_df.City。
    • 修正数据读取逻辑:如果用pandas读取数据,需指定正确分隔符并处理空格,比如:
      import pandas as pd
      complaints_df = pd.read_csv('your_data_file.csv', sep='I', skipinitialspace=True)
      

2. 字符串匹配偏差(大小写、空格)

代码中匹配的是"MANHATTAN",但如果数据里的城市名是小写(manhattan)、首字母大写(Manhattan)或带前后空格(MANHATTAN),都会导致匹配失败。

  • 解决:
    • 统一字符串格式后匹配:
      # 去除列值前后空格并转为大写
      complaints_df['Borough'] = complaints_df['Borough'].str.strip().str.upper()
      manhattan_df = complaints_df[complaints_df.Borough == "MANHATTAN"][['Complaint Type', 'Borough']]
      
    • 或者使用不区分大小写的匹配:
      manhattan_df = complaints_df[complaints_df.Borough.str.lower() == "manhattan"][['Complaint Type', 'Borough']]
      

3. 数据集无匹配记录

确认数据集中确实存在MANHATTAN的相关记录:运行 print(complaints_df['Borough'].unique()) 查看该列的所有唯一值,确认目标值是否存在。如果没有,需根据实际存在的城市名称调整匹配字符串。

4. 简化代码写法避免潜在问题

你的链式索引写法虽无语法错误,但可以改用更稳妥的loc链式写法:

manhattan_df = complaints_df.loc[complaints_df['Borough'] == "MANHATTAN", ['Complaint Type', 'Borough']]

内容的提问来源于stack exchange,提问作者Petter Nicolai Oppegaard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:35:22