有问题。我有一个记录列表,还有一个记录列表,我正在比较第一个列表。 当我写行时(第一个列表的行内读取:
for index, row in output_merged_po.iterrows():
stock = output_merged_stock[output_merged_stock['PN_STRIPPED']==row['PN_STRIPPED']][['Whs']]
print stock
我得到结果
Whs
11763 VLN
其中11763是输出合并股票id号,Whs是PN_剥离匹配的Whs的名称。
但我无法提取数据进行进一步处理。我只想写一个简单的if语句,在这里我可以问是否whs = VLN
。我写道:
if stock[['Whs']] == 'VLN':
print stock
我得到错误:The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我写道:
if stock == 'VLN':
print stock
我又得到了:The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如果我想得到结果“VLN”,应该如何编写if语句?例如,有时库存产出有时是3个小时,其中2个是“VLN”,第三个是“XRS”,在这种情况下,我应该看到“如果”产出是不带XRS的VLN的2倍
埃德楚姆, 谢谢你,它起作用了,但不是我想要的方式。对于
FOR
函数,我得到这些结果,然后PN匹配:所以如果我把
我得到的结果如下:
我只需要看14883线。
但是,如果我写第二个要查找的Whs名称(VKO):
我得到空行,没有信息打印,而我想看
待打印。我用另一个yours函数得到相同的结果:
怎么可能解决这个问题,只看到一条需要看的线?
您正在尝试将df(这里不需要)与标量值进行比较,标量值是不正确的,因为在测试标量值时它变得不明确,因为您可能有一个或多个匹配项。
我想你想要:
或者如果你知道只有一行,那么:
示例:
试试你试过的东西:
由此引发:
所以我们可以从错误中得到提示:
我们可以将
all
与“b”列一起使用:如果比较的序列只有一行值,则可以执行以下操作:
但如果超过一行,则会变得模棱两可:
再次引发
ValueError
,但以下操作将起作用:相关问题 更多 >
编程相关推荐