Pandas value_counts索引出现异常数字的原因咨询
问题描述
读取flights_2015.csv数据集(维度为(5819079, 31)),使用df['ORIGIN_AIRPORT'].value_counts()统计各机场航班数量时,输出结果中出现了13541、10165等数字索引,但原数据集的ORIGIN_AIRPORT列似乎不存在这类数字,请问原因是什么?
代码及输出
df = pd.read_csv('./data/flights_2015.csv', low_memory=False) print('Dataframe dimensions:', df.shape)
输出:
Dataframe dimensions: (5819079, 31)
count_flights = df['ORIGIN_AIRPORT'].value_counts()
输出:
ATL 346836 ORD 285884 DFW 239551 DEN 196055 LAX 194673 ... 13541 11 10165 9 14222 9 13502 6 11503 4
原因分析
这些数字是FAA(美国联邦航空管理局)分配的机场数字标识符,对应那些没有IATA三字代码的小型机场、通用航空机场或私人机场。
这类航班数据集(比如美国交通部BTS发布的航班数据)的ORIGIN_AIRPORT字段会采用两种标识格式:
- 大型商用机场使用常见的IATA三字码(如ATL、ORD)
- 小型机场则使用FAA的5位数字ID,因为它们未被IATA分配三字代码
你觉得原数据集不存在这类数字,大概率是查看样本数据时只关注了占比更高的大型机场记录,忽略了占比极低的小型机场条目。
验证方法
- 查看字段的所有唯一值,确认这些数字确实存在于数据中:
print(df['ORIGIN_AIRPORT'].unique()) - 检查字段的数据类型,确认这些数字是以字符串形式存储的(
low_memory=False会让pandas将该列识别为object类型,避免混合类型解析错误):print(df['ORIGIN_AIRPORT'].dtype)
内容的提问来源于stack exchange,提问作者mario119
相关产品推荐
相关产品推荐

