我想使用 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 我发现如果我在 DataFrame 创建时定义我的第一列,我正在做的工作。特别是:
mc = pd.MultiIndex.from_tuples([(0,0)])
我得到了第一列nan,我可以根据需要添加数据(也适用于新列):
population.loc[('optim','pareto'),(0,1)]=True
我仍然不知道我的第一个定义有什么问题......
幕布斯6054654
相关分类