我正在玩我拥有的数据,这是一个只有一个“值”列的深度多索引。我删除了一些不良数据的行,但后来却无法编制索引...有什么想法吗?
初始化示例数据帧(不是我的数据):
m=pd.MultiIndex.from_product(
[sorted(i) for i in [['one','two'],'abcd']],
names=['nums','lets'])
df1=pd.DataFrame(np.random.randn(len(m)),index=m)
创建
nums lets
one a 0.433026
b 1.203037
c -0.965066
d 1.028274
two a 0.228630
b 0.445138
c -1.136602
d 0.135137
后跟(删除不良数据)
df2=df1.loc[
~((df1.index.get_level_values('nums')=='two')
&(df1.index.get_level_values('lets')=='c'))]
这只会删除'two c':
nums lets
one a 0.433026
b 1.203037
c -0.965066
d 1.028274
two a 0.228630
b 0.445138
d 0.135137
这里事情开始变得越来越糟糕。
df2.loc[pd.IndexSlice[:,'c']]
失败,这是令人讨厌和意外但是没关系。 但那为什么呢
df2.loc[pd.IndexSlice[:,'a']]
失败?返回的错误是 KeyError:'标签[a]不在[columns]'
中甚至更奇怪 -
df2.loc[pd.IndexSlice['two','a']]
非常好。
我正在使用最新的蟒蛇大熊猫0.14.1 想法?