Pandas 如何将系列联接到数据帧:无法将非类别项追加到CategoricalIndex

Pandas 如何将系列联接到数据帧:无法将非类别项追加到CategoricalIndex,pandas,Pandas,我想我是按照指示做的,但我还是会犯这个错误,我不明白。我有一个DatFrame和一个系列,它们都具有相同的多索引,由级别“Woche”和“cluster”组成: 出现以下错误:TypeError:无法将非类别项附加到CategoricalIndex 我不明白。weekly.index.is_categorical()和df2.index.is_categorical()都产生False 我做错了什么?问题可能是每周。列——列,而不是索引——是一个分类索引。 比如说, import numpy a

我想我是按照指示做的,但我还是会犯这个错误,我不明白。我有一个DatFrame和一个系列,它们都具有相同的多索引,由级别“Woche”和“cluster”组成:

出现以下错误:TypeError:无法将非类别项附加到CategoricalIndex

我不明白。weekly.index.is_categorical()和df2.index.is_categorical()都产生False


我做错了什么?

问题可能是
每周。列
——列,而不是索引——是一个
分类索引。
比如说,

import numpy as np
import pandas as pd

nan = np.nan

weekly = pd.DataFrame(
    {
        "Woche": ["18w46", "18w46", "18w46", "18w46", "18w46"],
        "cluster": ["0", "D", "E", "F", "G"],
        "Base": [9.0, 5.0, 35.0, 7.0, 80.0],
        "Major": [nan, nan, nan, 50.0, 15.0],
    }
).set_index(["Woche", "cluster"])
weekly.columns = pd.CategoricalIndex(weekly.columns)

df2 = pd.DataFrame(
    {
        "Woche": ["18w46", "18w46", "18w46", "18w46", "18w46"],
        "cluster": ["0", "D", "E", "F", "G"],
        "Bruch": [9, 4, 1, 5, 94],
    }
).set_index(["Woche", "cluster"])["Bruch"]

weekly.join(df2)
引发
TypeError:无法将非类别项追加到CategoricalIndex


如果
weekly.columns.is_category()
True
,则可以通过将
weekly.columns
设置为常规
pd.Index
来避免此问题:

weekly.columns = weekly.columns.tolist()

到目前为止,对于一个令人费解的熊猫问题,我从来没有离开解决方案超过一行代码。我发现学习曲线和R一样陡峭,知道R是负担而不是帮助。两个都爱。谢谢
weekly.columns = weekly.columns.tolist()