Pandas - 使用lambda函数

时间:2016-02-18 22:25:44

标签: pandas

此应用功能有效,但我认为它无效;

xyz = data.apply(lambda row: pd.Series({"z":getNVC(row)[0],"y":getNVC(row)[1],"x":getNVC(row)[2]}),axis=1)

所以我基本上想要每行应用一次NVC函数并返回一个包含3个元素的np.array。然后,我将这3个元素映射到新列x,y和z。但是,我想目前我正在调用该功能3次?

理想情况下,我想只调用一次,保存在变量的输出中,比如output并将三个元素解压缩到列中。分配可能就像;

pd.Series({"z":output[0],"y":output[1],"x":output[2]})

1 个答案:

答案 0 :(得分:0)

纯粹是通过创建dict(输入到Series),只调用getNVC一次,以下内容可能会有效:

pd.Series( dict(zip("zyx", getNVC(row))) )