在熊猫中使用vlookup从excel执行类似的方法时,我遇到了一些问题
def valorPrecoMaterial(result):
#grupping all materials, if the values repeat, chose the most expensive
valores_agrupados = Valores.groupby('Material').agg({'PrecoLiq':'max'}).reset_index()
#link the material
result_preco = result.merge(valores_agrupados, on=['Material'], how='left')
return result_preco['PrecoLiq']
#adding coluns with the price of each material
Resultado['PRECO'] = valorPrecoMaterial(Resultado)
我的函数“ValorPreMaterial”的输出工作正常:
valorPrecoMaterial(Resultado).sum()
out[32]: 5442781.95
但是,当我尝试将其包含在结果矩阵中时,所有值都在NaN
中转换:
Resultado['PRECO'] = valorPrecoMaterial(Resultado)
Resultado['PRECO'].sum()
out[32]: 0
Resultado['PRECO']
out[32]: 2514 NaN
2526 NaN
2515 NaN
...
我知道valorPrecoMaterial(Resultado)
是一个系列值,但如何在不转换所有NaN
值的情况下将它链接到另一个矩阵的列中
原因很可能是您返回的序列的索引与数据帧的索引不匹配。当您尝试使用序列分配值时,pandas将尝试对齐索引。如果没有,则将插入NaN值
如果您知道形状适合,您可以直接使用以下方法指定值:
Resultado['PRECO'] = valorPrecoMaterial(Resultado).values
相关问题 更多 >
编程相关推荐