【问题标题】:TypeError: cannot insert an item into a CategoricalIndex that is not already an existing categoryTypeError:无法将项目插入到还不是现有类别的 CategoricalIndex 中
【发布时间】:2020-06-21 00:53:35
【问题描述】:

我正在尝试在 pandas 数据框中创建一个新列,表示每一行的总和(在本例中,此数字表示特定年份的乘客人数,该数据来自库附带的 Seaborn Flights 数据集导入。这是我的代码:

import pandas as pd
import seaborn

flights = seaborn.load_dataset('flights')

flights_indexed = flights.set_index(['year', 'month'])

# create a flights_unstacked DataFrame

flights_unstacked = flights_indexed['passengers'].unstack()

flights_unstacked['total'] = flights_unstacked.sum(axis=1)

我收到了一些关键错误:

KeyError: 'total' 在处理上述异常的过程中,又发生了一个异常:...

我相信“关键”错误(双关语)是我也收到的类型错误:

TypeError: 无法将项目插入到尚未存在的类别的 CategoricalIndex 中

【问题讨论】:

    标签: python pandas seaborn


    【解决方案1】:

    CategoricalIndex,所以报错,因为categories中不存在total

    可能的解决方案是将列转换为字符串:

    flights_unstacked.columns = flights_unstacked.columns.astype(str)
    flights_unstacked['total'] = flights_unstacked.sum(axis=1)
    

    或者通过CategoricalIndex.add_categories添加分类:

    flights_unstacked.columns = flights_unstacked.columns.add_categories('total')
    flights_unstacked['total'] = flights_unstacked.sum(axis=1)
    

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      相关资源
      最近更新 更多