Pandas MultiIndex, в котором одним из факторов является Enum - PullRequest
0 голосов
/ 02 июня 2018

У меня возникают проблемы при работе с фреймом данных, столбцы которого являются мультииндексом , в котором одним из итераций является Enum .Рассмотрим код:

MyEnum = Enum("MyEnum", "A B")
df = pd.DataFrame(columns=pd.MultiIndex.from_product(iterables=[MyEnum, [1, 2]]))

Это поднимает

TypeError: 'values' is not ordered, please explicitly specify the categories order by passing in a categories argument.

Это можно обойти, вместо этого набрав:

df = pd.DataFrame(columns=pd.MultiIndex.from_product(iterables=[
    pd.Series(MyEnum, dtype="category"),
    [1, 2]
]))

, но затем добавив строку с

df.append({(MyEnum.A, 1): "abc", (MyEnum.B, 2): "xyz"}, ignore_index=True)

поднимает тот же TypeError, что и раньше.

Я пробовал различные варианты этой темы, но безуспешно.(Никаких проблем не возникает, если столбцы не мультииндекс, но являются enum.)

(Обратите внимание, что я могу избежать этого, используя IntEnum вместо Enum. Но тогда мойстолбцы просто отображаются в виде чисел --- именно поэтому я и хотел использовать Enum, а не целые.)

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...