Я хотел бы использовать MultiIndex DataFrame для простого выбора частей DataFrame.Я создал пустой DataFrame следующим образом:
mi = mindex = {'input':['a','b','c'],'optim':['pareto','alive']}
mi = pd.MultiIndex.from_tuples([(c,k) for c in mi.keys() for k in mi[c]])
mc = pd.MultiIndex(names=['Generation','Individual'],labels=[[],[]],levels=[[],[]])
population = pd.DataFrame(index=mi,columns=mc)
, что кажется хорошим.Однако я не знаю, как вставить отдельные данные, чтобы начать заполнять мой DataFrame.Я попробовал следующее:
population.loc[('optim','pareto'),(0,0)]=True
, где я попытался определить новый двойной столбец индекса (0,0), ведущий к NotImplementedError
.Я также попытался с (0,1), который дал ValueError
.
Я попытался также без индексов столбцов:
population.loc[('optim','pareto')]=True
, который не дал ошибки ... но без измененийв DataFrame либо ... Любая помощь?Заранее спасибо.
РЕДАКТИРОВАТЬ Чтобы уточнить мой вопрос после заполнения, мой DataFrame должен выглядеть следующим образом:
Generation 1 2
Individual 1 2 3 4 5 6
input a 1 1 2 ...
b 1 2 2 ...
c 1 1 2 ...
optim pareto True True False ...
alive True True False ...
РЕДАКТИРОВАТЬ 2 Iобнаружил, что то, что я делал, работает, если я определю свой первый столбец при создании DataFrame.В частности, с:
mc = pd.MultiIndex.from_tuples([(0,0)])
Я получаю первый столбец, заполненный nan
, и могу добавлять данные, как я хотел (также для новых столбцов):
population.loc[('optim','pareto'),(0,1)]=True
Я все ещене знаю что не так с моим первым определением ...