尝试链接到另一列时在nan中进行系列对象变换

2024-09-27 17:44:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在熊猫中使用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值的情况下将它链接到另一个矩阵的列中


Tags: the矩阵resultnanoutmaterialsumvalores
1条回答
网友
1楼 · 发布于 2024-09-27 17:44:07

原因很可能是您返回的序列的索引与数据帧的索引不匹配。当您尝试使用序列分配值时,pandas将尝试对齐索引。如果没有,则将插入NaN值

如果您知道形状适合,您可以直接使用以下方法指定值:

Resultado['PRECO'] = valorPrecoMaterial(Resultado).values

相关问题 更多 >

    热门问题