首页 > 解决方案 > 类似 index.get_loc 的函数,但用于多个值

问题描述

我有以下数据框:

df = pd.DataFrame({'color': ['Yellow', 'Green', 'Red', 'Orange'], 'weight': [0.5, 4, 1, 10]}, index = ['Banana','Melon','Apple','Pumpkin'])

看起来像这样:

Banana  Yellow     0.5
Melon    Green     4.0
Apple      Red     1.0
Pumpkin  Orange    10.0

我要做的是访问“香蕉”、“甜瓜”、“苹果”、“南瓜”子集的整数位置。我知道 pandas.index.get_loc 是对索引的单个元素执行此操作的一种方式。例如:df.index.get_loc('Apple')返回 2。但是,我想一次对多个元素执行此操作。除其他外,我尝试了 df.index.get_loc('Apple','Pumpkin'),希望得到列表 [2,3],但这给出了以下错误:ValueError: Invalid fill method. Expecting pad (ffill), backfill (bfill) or nearest. Got pumpkin

是否有一个函数可以让我一次获得多个整数位置?

标签: pythonpandasdataframeindexing

解决方案


尝试使用get_indexer哪个接受列表,如输入

df.index.get_indexer(['Apple','Pumpkin'])
Out[104]: array([2, 3], dtype=int32)

推荐阅读