У меня возникают проблемы при работе с фреймом данных, столбцы которого являются мультииндексом , в котором одним из итераций является 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, а не целые.)
Большое спасибо!