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

使用Seaborn flights数据集时遇TypeError:category类型不支持求和操作

解决Flights数据集sum操作及绘图的TypeError问题

错误原因

Seaborn自带的flights数据集中,month字段是category类型。当执行groupby(['year']).sum()时,Pandas会默认对所有列执行求和操作,但category类型不支持sum运算,因此抛出TypeError: category type does not support sum operations。clustermap和lineplot出现问题也是同理——这类绘图函数在处理数据时会隐含数值计算,category列的存在干扰了计算逻辑。

解决办法

1. 仅对数值列执行聚合操作

直接指定只对passengers(唯一数值列)求和,避免触发对category列的运算:

import seaborn as sns

flights = sns.load_dataset('flights') 
flights.groupby(['year'])['passengers'].sum()

2. 转换category列类型(需保留month列时)

如果后续需要用到month列进行分析或绘图,可将其转为字符串类型,消除类型限制:

import seaborn as sns

flights = sns.load_dataset('flights')
flights['month'] = flights['month'].astype(str)
# 此时再执行groupby求和就不会报错
flights.groupby(['year']).sum()

3. 针对绘图函数的适配方案

  • lineplot:明确指定x、y轴对应的字段,避免函数自动识别错误列:
    sns.lineplot(data=flights, x='year', y='passengers')
    
  • clustermap:先将数据转为透视表,只保留数值型的乘客数关系,再传入绘图函数:
    flight_pivot = flights.pivot(index='month', columns='year', values='passengers')
    sns.clustermap(flight_pivot)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:52:33