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

关于Pandas中map函数传字典的作用及缺失值填充逻辑的问询

关于Pandas中map()传入字典的作用解释

你的理解完全正确

你对这段代码的功能判断是准确的:

  • 这段代码确实会用对应航空公司的票价中位数填充Price列的缺失值
  • map(prices_dict)的核心作用就是把Airline列里的每个航空公司名称,映射到prices_dict中对应的中位数数值

为什么map()不传函数也能工作?

在Pandas里,Series.map()方法的参数不止支持函数,还兼容字典、Series或者可迭代对象:

  • 当传入字典时,map()会自动把Series中的每个元素当作字典的key,去匹配对应的value
  • 如果某个元素在字典里找不到对应key,会返回NaN(不过你的场景里,prices_dict是从原数据的Airline分组生成的,所以不会出现这种情况)

举个简化例子更直观:

import pandas as pd

# 模拟你的航空公司中位数字典
prices_dict = {"AA": 150, "Delta": 180}
airline_series = pd.Series(["AA", "Delta", "AA"])

# 使用map匹配对应值
result = airline_series.map(prices_dict)
# 输出结果:0    150, 1    180, 2    150

拆解你代码的关键逻辑

  1. planes.groupby("Airline")["Price"].median():按航空公司分组计算票价中位数,得到一个以航空公司名为索引、中位数为值的Series
  2. .to_dict():把上述Series转换为字典,key是航空公司名,value是对应中位数
  3. planes["Airline"].map(prices_dict):生成一个和Airline列长度一致的Series,每个元素是对应航空公司的中位数
  4. fillna(...):用这个中位数Series填充Price列的缺失值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 03:25:56