已弃用的.pandas中的item()方法以及重写此方法的替代方式

4

我对pandas不是很熟悉,有一行代码会出现警告,称它会在后续版本中被弃用。这里的受害者是 .item()。

orderTotal = eachOrderDF.loc[eachOrderDF['ITEM CODE'] == 'Order Total', 'ORDER QTY(PKS)'].item() 

有没有其他方法可以重写这段代码以达到相同的效果?

1个回答

2

您可以使用 Series.iatSeries.iloc 或将其转换为数组并选择第一个值来选择过滤后的 Series 的第一个值:

s = eachOrderDF.loc[eachOrderDF['ITEM CODE'] == 'Order Total', 'ORDER QTY(PKS)']

orderTotal = s.iat[0]

orderTotal = s.iloc[0]

orderTotal = s.values[0]

但如果没有匹配,那么意味着 s 是空的,上述 Series 解决方案失败了。然后,可以使用iternext来指定可能的值,如果没有匹配,则使用这里的no match

orderTotal = next(iter(s), 'no match')

1
非常感谢。我在这种情况下使用了你建议的iat。 - J T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接