Python 切片多索引行--';无法进行标签索引';
我有一个数据帧,它有两层多索引行。类型的级别为:Python 切片多索引行--';无法进行标签索引';,python,pandas,Python,Pandas,我有一个数据帧,它有两层多索引行。类型的级别为:和 例如,我正在尝试获取“contract_serial=201410的所有行”的切片 我尝试了.loc的几种变体 jkm_df.loc[:, 201506] TypeError: cannot do label indexing on <class 'pandas.indexes.base.Index'> with these indexers [201506] of <class 'int'> 通过评估日期或合同序列
和
例如,我正在尝试获取“contract_serial=201410的所有行”的切片
我尝试了.loc的几种变体
jkm_df.loc[:, 201506]
TypeError: cannot do label indexing on <class 'pandas.indexes.base.Index'> with these indexers [201506] of <class 'int'>
通过评估日期或合同序列选择此多指标的正确方法是什么?使用:
如有必要,两个级别也使用参数drop\u level=False
:
print (jkm_df.xs(201406, level=1, drop_level=False))
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
解决方案包括:
另一个解决方案包括:
使用:
如有必要,两个级别也使用参数drop\u level=False
:
print (jkm_df.xs(201406, level=1, drop_level=False))
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
解决方案包括:
另一个解决方案包括:
xs
适用于检索标量值。另一个解决方案(提供稍微更大的灵活性)是使用pd.indexlice
+loc
idx = pd.IndexSlice
df.loc[idx[:, 201410], :]
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
xs
适用于检索标量值。另一个解决方案(提供稍微更大的灵活性)是使用pd.indexlice
+loc
idx = pd.IndexSlice
df.loc[idx[:, 201410], :]
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
idx=pd.indexlice;df.loc[idx[:,201410],:]
@coldspeed哇,快点,谢谢idx=pd.indexlice;df.loc[idx[:,201410],:]
@coldspeed哇,快点,谢谢!我将添加索引作为答案,可以吗?这取决于你。干杯,节日快乐@Cᴏʟᴅsᴘᴇᴇᴅ - 我把它签回给dupe,但谢谢你。好吧,这取决于你。我也删除了我的答案。请记住,我对你的问题是,你有时会回答明显重复的问题(不仅仅是任何重复的问题)。你已经回答了数千个问题,所以当你写同样的东西时,你应该注意。我不认为我是任何人的老板,我的自我没有那么膨胀。另外,请不要玩受害者牌,因为你知道你过去犯过错误,这不值得讨论。我已经删除了我的答案,因为你已经做出了一个崇高的决定,不再发布你的答案。让我们从这里继续。我将添加索引作为答案,好吗?这取决于你。干杯,节日快乐@Cᴏʟᴅsᴘᴇᴇᴅ - 我把它签回给dupe,但谢谢你。好吧,这取决于你。我也删除了我的答案。请记住,我对你的问题是,你有时会回答明显重复的问题(不仅仅是任何重复的问题)。你已经回答了数千个问题,所以当你写同样的东西时,你应该注意。我不认为我是任何人的老板,我的自我没有那么膨胀。另外,请不要玩受害者牌,因为你知道你过去犯过错误,这不值得讨论。我已经删除了我的答案,因为你已经做出了一个崇高的决定,不再发布你的答案。让我们从这开始。
print (jkm_df.loc(axis=0)[:, 201406])
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
print (jkm_df.loc[(slice(None), 201406), :])
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14
idx = pd.IndexSlice
df.loc[idx[:, 201410], :]
px_settlement contract_code
assessment_date contract_serial
2014-01-02 201406 16.1 m14