如何在具有多索引的Pandas.Series中分配新行?

时间:2019-02-12 22:05:33

标签: pandas

我曾经能够分配给这样的系列:

import pandas as pd
pd.Series()["aaa"]= True        # regular indexing
pd.Series().loc["aaa"]= True        # regular indexing
pd.Series()[("aaa",123)]= True  # Multi indexing
pd.Series().loc[("aaa",123)]= True  # Multi indexing

但在大熊猫24.0及更高版本中,两个:

pd.Series()[("aaa",123)]= True
pd.Series().loc[("aaa",123)]= True

给我:

KeyError: u"None of [Index([u'aaa', 1], dtype='object')] are in the [index]"

那么-我如何在熊猫0.24.1中使用多重索引分配一个系列?

更新:--------- 有效的错误参考:https://github.com/pandas-dev/pandas/issues/25290#issuecomment-463206942

1 个答案:

答案 0 :(得分:1)

首先初始化一个正确尺寸的空MultiIndex,然后它将起作用:

import pandas as pd

idx = pd.MultiIndex(levels=[[], []], codes=[[], []])
s = pd.Series(index=idx)
s.loc[("aaa",123)]= True

print(s)
#aaa  123    True
#dtype: bool