我编写了以下函数,将带有unit(ufrom)的值(col)转换成另一个unit(uto):
def convert(row, col , ufrom, uto):
convRow = convDF[(convDF.from == row[ufrom]) & (convDF.to == uto)]
val = row[col] / convRow.factor
return(val, uto)
convDF是一个包含多个单元及其转换因子的数据帧。我把这个函数叫做:
^{pr2}$convert函数获取当前行、包含需要转换的值的列、源单元列以及目标单元。到目前为止,它是完美的。在
如您所见,我调用了这个函数三次,但我想知道是否可以调用一次并传递所有三个参数(Width、Length、Hight)并转换它们,因为它们有相同的列引用它们的单位(unit)和相同的目标单位(uto)。所以我希望函数能够处理单个值和多个值。 最后,这个
df.at[idx, ['Width', 'Unit']] = convert(row,'Width', 'Unit', 'MM')
应该和这个一样好
df.at[idx, ['Width','Length','Hight', 'Unit']] = convert(row,['Width','Length','Hight'],'Unit', 'MM')
尝试使用*
-语法传递1:n个参数,但如何更改convert函数以给出多个或单个结果?在
谢谢你!在
您可以让函数将列列表作为参数,然后根据列列表中的内容返回列表。例如
然后你可以这样称呼它
^{pr2}$或者,对于一列,只需有一个包含一个元素的列表:
相关问题 更多 >
编程相关推荐