Python如何在具有多(2)个索引的数据帧中选择/删除元素

2024-06-01 04:33:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的python数据帧(test)和2个索引(permKey和ccy)

              qty  inventoryValue
permKey ccy                     
CASH    AUD    3           60000
        USD    3            1200
SPY     USD    5            1050

要选择所有现金头寸,此代码执行以下操作:

Cash = test.loc['CASH']

我如何选择所有与现金无关的头寸(可以有很多)-即,在这个df中删除现金头寸的命令是什么?你知道吗

我试过这样的方法

nonCash = test.drop(test.loc['CASH'], axis=1)

但它会导致一个空的数据帧

test Empty DataFrame
Columns: []
Index: [(CASH, AUD), (CASH, USD), (SPY, USD)]

Tags: 数据testcashlocusdqty代码执行现金
2条回答

您可以查看索引的第一级并创建非现金索引的布尔数组:

nonCash = test.index.levels[0] != 'CASH'
array([False, False,  True], dtype=bool)

然后使用nonCash数组作为数据帧的筛选器:

test[nonCash]
            qty  intentoryValue
permKey ccy                     
SPY     USD    5            1050 

好像只是用了不同的drop语句

nonCash = test.drop(['CASH'])

相关问题 更多 >