首页 > 解决方案 > 如何在python中获取填充缺失值的排序值列表?

问题描述

给定一个商品清单:并给定一个带有某些
goodlist = ['bread', 'water', 'salt', 'saffron', 'mustard']
商品 值的 pandas 数据框: 我想返回一个包含所有商品数量的数组:
new_qty = pd.DataFrame(zip(['water', 'saffron'], [42, 1.5]), columns = [ 'good', 'qty'])

expected = [ 0.0, 42.0, 0.0, 1.5, 0.0 ]

使用此数据的函数知道 goodlist,因此顺序必须正确。

我可以用 for 循环解决这个问题,但我很确定 python 有更好的工具来做到这一点,最好是 numpy 或 tensorflow 的东西......这段代码会被调用很多,所以速度也很重要。

如果有人可以请在此限制内提出解决方案?

标签: pythonpandasnumpy

解决方案


尝试reindex

l = new_qty.set_index('good')['qty'].reindex(goodlist,fill_value=0).tolist()
Out[700]: [0.0, 42.0, 0.0, 1.5, 0.0]

推荐阅读