Python中Airbnb数据集过滤NYC数据失败问题求助
解决Airbnb数据集NYC数据筛选问题
你的代码在布尔索引的语法上出现了错误,导致无法正确筛选出NYC的相关数据,以下是具体的修正方案:
错误原因
你写的Airbnb["city" == " NYC"]逻辑有误:这里是在判断字符串"city"是否等于" NYC",结果会得到一个单一的布尔值False,用这个值去索引DataFrame自然无法获取到目标数据。正确的布尔索引应该是先对city列做条件判断,再用这个布尔序列去筛选行。
另外需要注意:数据中city列的实际值可能是"NYC"而非" NYC"(带前导空格),建议先确认数据中的真实值。
修正后的代码
import numpy as np import pandas as pd # 读取数据集 Airbnb = pd.read_csv("file location") # 先确认city列的所有唯一值,排查空格/大小写问题 print(Airbnb["city"].unique()) # 方法1:基础布尔索引(根据实际值调整筛选条件) Airbnb_NYC = Airbnb[Airbnb["city"] == "NYC"] # 方法2:使用query方法,语法更简洁 # Airbnb_NYC = Airbnb.query('city == "NYC"') # 验证筛选结果的维度 print(Airbnb_NYC.shape) # 查看前5行数据确认是否包含所有列 print(Airbnb_NYC.head())
额外优化提示
如果数据中city值存在大小写不一致、前后空格的情况,可以先做数据清洗:
# 去除前后空格并统一转为大写(或小写) Airbnb["city"] = Airbnb["city"].str.strip().str.upper() # 再筛选 Airbnb_NYC = Airbnb[Airbnb["city"] == "NYC"]
内容的提问来源于stack exchange,提问作者Riddle
相关产品推荐
相关产品推荐

