类型错误:无法将项目插入还不是现有类别的 CategoricalIndex

Cir*_*oth 5 python pandas seaborn

我正在尝试在 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)
Run Code Online (Sandbox Code Playgroud)

我收到几个关键错误:

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

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

类型错误:无法将项目插入还不是现有类别的 CategoricalIndex

jez*_*ael 8

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

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

flights_unstacked.columns = flights_unstacked.columns.astype(str)
flights_unstacked['total'] = flights_unstacked.sum(axis=1)
Run Code Online (Sandbox Code Playgroud)

或按CategoricalIndex.add_categories以下方式添加类别:

flights_unstacked.columns = flights_unstacked.columns.add_categories('total')
flights_unstacked['total'] = flights_unstacked.sum(axis=1)
Run Code Online (Sandbox Code Playgroud)