python - 类似 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
是否有一个函数可以让我一次获得多个整数位置?
解决方案
尝试使用get_indexer
哪个接受列表,如输入
df.index.get_indexer(['Apple','Pumpkin'])
Out[104]: array([2, 3], dtype=int32)
推荐阅读
- xml - 如何从任何数据类型 BPEL 中获取数据?[xpath/xquery]
- javascript - 每个数组的元素被放入一个对象
- menu - 构建自定义 DNN 电子商务超级菜单并从单独的 ERP 数据库中恢复产品类别并将两者链接起来
- javascript - 将平面数组转换为分层数组
- mysql - 使用express js框架在node js中关闭mysql的理想连接
- javascript - Javascript中是否有将数字(带小数位)转换为单词的功能?
- django - Django:上传文件后,用户界面抛出“此字段为必填项”错误
- reactjs - 为什么 React 应用程序无法在 Internet Explorer 浏览器中运行
- javascript - 结合节点js中具有相同字段的两个数组
- docker - 如何在 Docker 映像中运行 Signalr Blazor 客户端的 StartAsync 连接?