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

Python中DataFrame按Country、City列重采样绘图报错排查

报错核心原因
  • pandas的resample()是时间序列专属方法,仅支持对时间类型的索引做重采样运算。你已经把dt列处理成了datetime类型,但没有将其设置为DataFrame/Series的索引,直接调用resample()就会触发类型报错。
  • 从原有代码逻辑看,是先按Country、City做了行筛选,直接对筛选结果里的AverageTemperature列调用重采样,跳过了设置时间索引的必要步骤,这是报错的直接诱因。
修正方案

如果已经完成dt列的datetime类型转换,直接按以下逻辑调整即可:

分步写法(逻辑清晰,方便调试)

# 筛选指定国家、城市的子集
city_df = df[(df["Country"] == "你要查询的国家名") & (df["City"] == "你要查询的城市名")].copy()
# 将时间列设为索引,这是resample正常运行的必要前提
city_df = city_df.set_index("dt")
# 按年维度重采样,聚合方式取平均气温,可根据需求替换为sum、max、min等聚合规则
yearly_avg_temp = city_df["AverageTemperature"].resample("Y").mean()
# 绘制趋势图
yearly_avg_temp.plot(figsize=(12, 6), ylabel="Annual Average Temperature")

链式写法(代码简洁,适合快速出结果)

df[
    (df["Country"] == "你要查询的国家名") & (df["City"] == "你要查询的城市名")
].set_index("dt")["AverageTemperature"].resample("Y").mean().plot()

补充说明:如果重采样后存在空值,可在.mean()后追加.dropna()剔除缺失值,避免绘图时线条出现断档。

内容的提问来源于stack exchange,提问作者Chase Asbby

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:36:16